home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / mui / mui_developer / c / include / libraries / mui.h
C/C++ Source or Header  |  1997-03-10  |  127KB  |  3,180 lines

  1. /***************************************************************************
  2. **
  3. ** MUI - MagicUserInterface
  4. ** (c) 1993-1997 Stefan Stuntz
  5. **
  6. ** Main Header File
  7. **
  8. ****************************************************************************
  9. ** Class Tree
  10. ****************************************************************************
  11. **
  12. ** rootclass                    (BOOPSI's base class)
  13. ** +--Notify                   (implements notification mechanism)
  14. ** !  +--Family                (handles multiple children)
  15. ** !  !  +--Menustrip          (describes a complete menu strip)
  16. ** !  !  +--Menu               (describes a single menu)
  17. ** !  !  \--Menuitem           (describes a single menu item)
  18. ** !  +--Application           (main class for all applications)
  19. ** !  +--Window                (main class for all windows)
  20. ** !  !  \--Aboutmui           (About window of MUI preferences)
  21. ** !  +--Area                  (base class for all GUI elements)
  22. ** !     +--Rectangle          (spacing object)
  23. ** !     +--Balance            (balancing separator bar)
  24. ** !     +--Image              (image display)
  25. ** !     +--Bitmap             (draws bitmaps)
  26. ** !     !  \--Bodychunk       (makes bitmap from ILBM body chunk)
  27. ** !     +--Text               (text display)
  28. ** !     +--Gadget             (base class for intuition gadgets)
  29. ** !     !  +--String          (string gadget)
  30. ** !     !  +--Boopsi          (interface to BOOPSI gadgets)
  31. ** !     !  \--Prop            (proportional gadget)
  32. ** !     +--Gauge              (fule gauge)
  33. ** !     +--Scale              (percentage scale)
  34. ** !     +--Colorfield         (field with changeable color)
  35. ** !     +--List               (line-oriented list)
  36. ** !     !  +--Floattext       (special list with floating text)
  37. ** !     !  +--Volumelist      (special list with volumes)
  38. ** !     !  +--Scrmodelist     (special list with screen modes)
  39. ** !     !  \--Dirlist         (special list with files)
  40. ** !     +--Numeric            (base class for slider gadgets)
  41. ** !     !  +--Knob            (turning knob)
  42. ** !     !  +--Levelmeter      (level display)
  43. ** !     !  +--Numericbutton   (space saving popup slider)
  44. ** !     !  \--Slider          (traditional slider)
  45. ** !     +--Framedisplay       (private)
  46. ** !     !  \--Popframe        (private)
  47. ** !     +--Imagedisplay       (private)
  48. ** !     !  \--Popimage        (private)
  49. ** !     +--Pendisplay         (displays a pen specification)
  50. ** !     !  \--Poppen          (popup button to adjust a pen spec)
  51. ** !     +--Group              (groups other GUI elements)
  52. ** !        +--Mccprefs        (private)
  53. ** !        +--Register        (handles page groups with titles)
  54. ** !        !  \--Penadjust    (group to adjust a pen)
  55. ** !        +--Settingsgroup   (private)
  56. ** !        +--Settings        (private)
  57. ** !        +--Frameadjust     (private)
  58. ** !        +--Imageadjust     (private)
  59. ** !        +--Virtgroup       (handles virtual groups)
  60. ** !        +--Scrollgroup     (virtual groups with scrollbars)
  61. ** !        +--Scrollbar       (traditional scrollbar)
  62. ** !        +--Listview        (listview)
  63. ** !        +--Radio           (radio button)
  64. ** !        +--Cycle           (cycle gadget)
  65. ** !        +--Coloradjust     (several gadgets to adjust a color)
  66. ** !        +--Palette         (complete palette gadget)
  67. ** !        +--Popstring       (base class for popup objects)
  68. ** !           +--Popobject    (popup aynthing in a separate window)
  69. ** !           !  +--Poplist   (popup a simple listview)
  70. ** !           !  \--Popscreen (popup a list of public screens)
  71. ** !           \--Popasl       (popup an asl requester)
  72. ** +--Semaphore                (semaphore equipped objects)
  73. **    +--Applist               (private)
  74. **    +--Dataspace             (handles general purpose data spaces)
  75. **       \--Configdata         (private)
  76. **
  77. ****************************************************************************
  78. ** General Header File Information
  79. ****************************************************************************
  80. **
  81. ** All macro and structure definitions follow these rules:
  82. **
  83. ** Name                       Meaning
  84. **
  85. ** MUIC_<class>               Name of a class
  86. ** MUIM_<class>_<method>      Method
  87. ** MUIP_<class>_<method>      Methods parameter structure
  88. ** MUIV_<class>_<method>_<x>  Special method value
  89. ** MUIA_<class>_<attrib>      Attribute
  90. ** MUIV_<class>_<attrib>_<x>  Special attribute value
  91. ** MUIE_<error>               Error return code from MUI_Error()
  92. ** MUII_<name>                Standard MUI image
  93. ** MUIX_<code>                Control codes for text strings
  94. ** MUIO_<name>                Object type for MUI_MakeObject()
  95. **
  96. ** MUIA_... attribute definitions are followed by a comment
  97. ** consisting of the three possible letters I, S and G.
  98. ** I: it's possible to specify this attribute at object creation time.
  99. ** S: it's possible to change this attribute with SetAttrs().
  100. ** G: it's possible to get this attribute with GetAttr().
  101. **
  102. ** Items marked with "Custom Class" are for use in custom classes only!
  103. */
  104.  
  105.  
  106. #ifndef LIBRARIES_MUI_H
  107. #define LIBRARIES_MUI_H
  108.  
  109. #ifndef EXEC_TYPES_H
  110. #include "exec/types.h"
  111. #endif
  112.  
  113. #ifndef DOS_DOS_H
  114. #include "dos/dos.h"
  115. #endif
  116.  
  117. #ifndef INTUITION_CLASSES_H
  118. #include "intuition/classes.h"
  119. #endif
  120.  
  121. #ifndef INTUITION_SCREENS_H
  122. #include "intuition/screens.h"
  123. #endif
  124.  
  125. #ifndef CLIB_INTUITION_PROTOS_H
  126. #include "clib/intuition_protos.h"
  127. #endif
  128.  
  129.  
  130. /***************************************************************************
  131. ** Library specification
  132. ***************************************************************************/
  133.  
  134. #define MUIMASTER_NAME    "muimaster.library"
  135. #define MUIMASTER_VMIN    11
  136. #define MUIMASTER_VLATEST 19
  137.  
  138. /*
  139. ** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  140. ** Warning, some of the macros in this header file work only with
  141. ** muimaster.library V11 and above. If you recompile your programs,
  142. ** be sure to open muimaster.library with MUIMASTER_VMIN as version number.
  143. ** !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  144. */
  145.  
  146.  
  147. /* comment this if you dont want to include obsolete identifiers */
  148.  
  149. #define MUI_OBSOLETE
  150.  
  151.  
  152.  
  153. /*************************************************************************
  154. ** Config items for MUIM_GetConfigItem
  155. *************************************************************************/
  156.  
  157.  
  158. #define MUICFG_PublicScreen            36
  159.  
  160.  
  161.  
  162.  
  163. /*************************************************************************
  164. ** Black box specification structures for images, pens, frames
  165. *************************************************************************/
  166.  
  167. struct MUI_PenSpec
  168. {
  169.     char buf[32];
  170. };
  171.  
  172.  
  173.  
  174. /*************************************************************************
  175. ** Public Screen Stuff
  176. *************************************************************************/
  177.  
  178. /*
  179. ** NOTE: This stuff is only included to allow compilation of the supplied
  180. **       public screen manager for educational purposes. Everything
  181. **       here is subject to change without notice and I guarantee to
  182. **       do that just for fun!
  183. **       More info can be found in the screen manager source file.
  184. */
  185.  
  186. #define PSD_INITIAL_NAME   "(unnamed)"
  187. #define PSD_INITIAL_TITLE  "MUI Public Screen"
  188. #define PSD_ID_MPUB        MAKE_ID('M','P','U','B')
  189.  
  190. #define PSD_NAME_FRONTMOST "«Frontmost»"
  191.  
  192. #define PSD_FILENAME_SAVE "envarc:mui/PublicScreens.iff"
  193. #define PSD_FILENAME_USE  "env:mui/PublicScreens.iff"
  194.  
  195. #define PSD_MAXLEN_NAME         32
  196. #define PSD_MAXLEN_TITLE       128
  197. #define PSD_MAXLEN_FONT         48
  198. #define PSD_MAXLEN_BACKGROUND  256
  199. #define PSD_NUMCOLS              8
  200. #define PSD_MAXSYSPENS          20
  201. #define PSD_NUMSYSPENS          12
  202. #define PSD_MAXMUIPENS          10
  203. #define PSD_NUMMUIPENS  MPEN_COUNT
  204.  
  205. struct MUI_RGBcolor
  206. {
  207.     ULONG red;
  208.     ULONG green;
  209.     ULONG blue;
  210. };
  211.  
  212. struct MUI_PubScreenDesc
  213. {
  214.     LONG  Version;
  215.  
  216.     char  Name[PSD_MAXLEN_NAME];
  217.     char  Title[PSD_MAXLEN_TITLE];
  218.     char  Font[PSD_MAXLEN_FONT];
  219.     char  Background[PSD_MAXLEN_BACKGROUND];
  220.  
  221.     ULONG DisplayID;
  222.  
  223.     UWORD DisplayWidth;
  224.     UWORD DisplayHeight;
  225.  
  226.     UBYTE DisplayDepth;
  227.     UBYTE OverscanType;
  228.     UBYTE AutoScroll;
  229.     UBYTE NoDrag;
  230.     UBYTE Exclusive;
  231.     UBYTE Interleaved;
  232.     UBYTE SysDefault;
  233.     UBYTE Behind;
  234.     UBYTE AutoClose;
  235.     UBYTE CloseGadget;
  236.     UBYTE DummyWasForeign;
  237.  
  238.     BYTE SystemPens[PSD_MAXSYSPENS];
  239.     UBYTE Reserved[1+7*4-PSD_MAXSYSPENS];
  240.  
  241.     struct MUI_RGBcolor Palette[PSD_NUMCOLS];
  242.     struct MUI_RGBcolor rsvd[PSD_MAXSYSPENS-PSD_NUMCOLS];
  243.  
  244.     struct MUI_PenSpec rsvd2[PSD_MAXMUIPENS];
  245.  
  246.     LONG Changed;
  247.     APTR UserData;
  248. };
  249.  
  250. struct MUIS_InfoClient
  251. {
  252.     struct MinNode node;
  253.     struct Task *task;
  254.     ULONG sigbit;
  255. };
  256.  
  257.  
  258. /***************************************************************************
  259. ** Object Types for MUI_MakeObject()
  260. ***************************************************************************/
  261.  
  262. #define MUIO_Label          1   /* STRPTR label, ULONG flags */
  263. #define MUIO_Button         2   /* STRPTR label */
  264. #define MUIO_Checkmark      3   /* STRPTR label */
  265. #define MUIO_Cycle          4   /* STRPTR label, STRPTR *entries */
  266. #define MUIO_Radio          5   /* STRPTR label, STRPTR *entries */
  267. #define MUIO_Slider         6   /* STRPTR label, LONG min, LONG max */
  268. #define MUIO_String         7   /* STRPTR label, LONG maxlen */
  269. #define MUIO_PopButton      8   /* STRPTR imagespec */
  270. #define MUIO_HSpace         9   /* LONG space   */
  271. #define MUIO_VSpace        10   /* LONG space   */
  272. #define MUIO_HBar          11   /* LONG space   */
  273. #define MUIO_VBar          12   /* LONG space   */
  274. #define MUIO_MenustripNM   13   /* struct NewMenu *nm, ULONG flags */
  275. #define MUIO_Menuitem      14   /* STRPTR label, STRPTR shortcut, ULONG flags, ULONG data  */
  276. #define MUIO_BarTitle      15   /* STRPTR label */
  277. #define MUIO_NumericButton 16   /* STRPTR label, LONG min, LONG max, STRPTR format */
  278.  
  279. #define MUIO_Menuitem_CopyStrings (1<<30)
  280.  
  281. #define MUIO_Label_SingleFrame   (1<< 8)
  282. #define MUIO_Label_DoubleFrame   (1<< 9)
  283. #define MUIO_Label_LeftAligned   (1<<10)
  284. #define MUIO_Label_Centered      (1<<11)
  285. #define MUIO_Label_FreeVert      (1<<12)
  286.  
  287. #define MUIO_MenustripNM_CommandKeyCheck (1<<0) /* check for "localized" menu items such as "O\0Open" */
  288.  
  289.  
  290.  
  291. /***************************************************************************
  292. ** ARexx Interface
  293. ***************************************************************************/
  294.  
  295. struct MUI_Command
  296. {
  297.     char        *mc_Name;
  298.     char        *mc_Template;
  299.     LONG         mc_Parameters;
  300.     struct Hook *mc_Hook;
  301.     LONG         mc_Reserved[5];
  302. };
  303.  
  304. #define MC_TEMPLATE_ID ((STRPTR)~0)
  305.  
  306. #define MUI_RXERR_BADDEFINITION  -1
  307. #define MUI_RXERR_OUTOFMEMORY    -2
  308. #define MUI_RXERR_UNKNOWNCOMMAND -3
  309. #define MUI_RXERR_BADSYNTAX      -4
  310.  
  311.  
  312. /***************************************************************************
  313. ** Return values for MUI_Error()
  314. ***************************************************************************/
  315.  
  316. #define MUIE_OK                  0
  317. #define MUIE_OutOfMemory         1
  318. #define MUIE_OutOfGfxMemory      2
  319. #define MUIE_InvalidWindowObject 3
  320. #define MUIE_MissingLibrary      4
  321. #define MUIE_NoARexx             5
  322. #define MUIE_SingleTask          6
  323.  
  324.  
  325.  
  326. /***************************************************************************
  327. ** Standard MUI Images & Backgrounds
  328. ***************************************************************************/
  329.  
  330. #define MUII_WindowBack      0   /* These images are configured   */
  331. #define MUII_RequesterBack   1   /* with the preferences program. */
  332. #define MUII_ButtonBack      2
  333. #define MUII_ListBack        3
  334. #define MUII_TextBack        4
  335. #define MUII_PropBack        5
  336. #define MUII_PopupBack       6
  337. #define MUII_SelectedBack    7
  338. #define MUII_ListCursor      8
  339. #define MUII_ListSelect      9
  340. #define MUII_ListSelCur     10
  341. #define MUII_ArrowUp        11
  342. #define MUII_ArrowDown      12
  343. #define MUII_ArrowLeft      13
  344. #define MUII_ArrowRight     14
  345. #define MUII_CheckMark      15
  346. #define MUII_RadioButton    16
  347. #define MUII_Cycle          17
  348. #define MUII_PopUp          18
  349. #define MUII_PopFile        19
  350. #define MUII_PopDrawer      20
  351. #define MUII_PropKnob       21
  352. #define MUII_Drawer         22
  353. #define MUII_HardDisk       23
  354. #define MUII_Disk           24
  355. #define MUII_Chip           25
  356. #define MUII_Volume         26
  357. #define MUII_RegisterBack   27
  358. #define MUII_Network        28
  359. #define MUII_Assign         29
  360. #define MUII_TapePlay       30
  361. #define MUII_TapePlayBack   31
  362. #define MUII_TapePause      32
  363. #define MUII_TapeStop       33
  364. #define MUII_TapeRecord     34
  365. #define MUII_GroupBack      35
  366. #define MUII_SliderBack     36
  367. #define MUII_SliderKnob     37
  368. #define MUII_TapeUp         38
  369. #define MUII_TapeDown       39
  370. #define MUII_PageBack       40
  371. #define MUII_ReadListBack   41
  372. #define MUII_Count          42
  373.  
  374. #define MUII_BACKGROUND     128    /* These are direct color    */
  375. #define MUII_SHADOW         129    /* combinations and are not  */
  376. #define MUII_SHINE          130    /* affected by users prefs.  */
  377. #define MUII_FILL           131
  378. #define MUII_SHADOWBACK     132    /* Generally, you should     */
  379. #define MUII_SHADOWFILL     133    /* avoid using them. Better  */
  380. #define MUII_SHADOWSHINE    134    /* use one of the customized */
  381. #define MUII_FILLBACK       135    /* images above.             */
  382. #define MUII_FILLSHINE      136
  383. #define MUII_SHINEBACK      137
  384. #define MUII_FILLBACK2      138
  385. #define MUII_HSHINEBACK     139
  386. #define MUII_HSHADOWBACK    140
  387. #define MUII_HSHINESHINE    141
  388. #define MUII_HSHADOWSHADOW  142
  389. #define MUII_MARKSHINE      143
  390. #define MUII_MARKHALFSHINE  144
  391. #define MUII_MARKBACKGROUND 145
  392. #define MUII_LASTPAT        145
  393.  
  394.  
  395.  
  396. /***************************************************************************
  397. ** Special values for some methods
  398. ***************************************************************************/
  399.  
  400. #define MUIV_TriggerValue    0x49893131
  401. #define MUIV_NotTriggerValue 0x49893133
  402. #define MUIV_EveryTime       0x49893131
  403.  
  404. #define MUIV_Notify_Self        1
  405. #define MUIV_Notify_Window      2
  406. #define MUIV_Notify_Application 3
  407. #define MUIV_Notify_Parent      4
  408.  
  409. #define MUIV_Application_Save_ENV     ((STRPTR) 0)
  410. #define MUIV_Application_Save_ENVARC  ((STRPTR)~0)
  411. #define MUIV_Application_Load_ENV     ((STRPTR) 0)
  412. #define MUIV_Application_Load_ENVARC  ((STRPTR)~0)
  413.  
  414. #define MUIV_Application_ReturnID_Quit -1
  415.  
  416. #define MUIV_List_Insert_Top             0
  417. #define MUIV_List_Insert_Active         -1
  418. #define MUIV_List_Insert_Sorted         -2
  419. #define MUIV_List_Insert_Bottom         -3
  420.  
  421. #define MUIV_List_Remove_First           0
  422. #define MUIV_List_Remove_Active         -1
  423. #define MUIV_List_Remove_Last           -2
  424. #define MUIV_List_Remove_Selected       -3
  425.  
  426. #define MUIV_List_Select_Off             0
  427. #define MUIV_List_Select_On              1
  428. #define MUIV_List_Select_Toggle          2
  429. #define MUIV_List_Select_Ask             3
  430.  
  431. #define MUIV_List_GetEntry_Active       -1
  432. #define MUIV_List_Select_Active         -1
  433. #define MUIV_List_Select_All            -2
  434.  
  435. #define MUIV_List_Redraw_Active         -1
  436. #define MUIV_List_Redraw_All            -2
  437.  
  438. #define MUIV_List_Move_Top               0
  439. #define MUIV_List_Move_Active           -1
  440. #define MUIV_List_Move_Bottom           -2
  441. #define MUIV_List_Move_Next             -3 /* only valid for second parameter */
  442. #define MUIV_List_Move_Previous         -4 /* only valid for second parameter */
  443.  
  444. #define MUIV_List_Exchange_Top           0
  445. #define MUIV_List_Exchange_Active       -1
  446. #define MUIV_List_Exchange_Bottom       -2
  447. #define MUIV_List_Exchange_Next         -3 /* only valid for second parameter */
  448. #define MUIV_List_Exchange_Previous     -4 /* only valid for second parameter */
  449.  
  450. #define MUIV_List_Jump_Top               0
  451. #define MUIV_List_Jump_Active           -1
  452. #define MUIV_List_Jump_Bottom           -2
  453. #define MUIV_List_Jump_Up               -4
  454. #define MUIV_List_Jump_Down             -3
  455.  
  456. #define MUIV_List_NextSelected_Start    -1
  457. #define MUIV_List_NextSelected_End      -1
  458.  
  459. #define MUIV_DragQuery_Refuse 0
  460. #define MUIV_DragQuery_Accept 1
  461.  
  462. #define MUIV_DragReport_Abort    0
  463. #define MUIV_DragReport_Continue 1
  464. #define MUIV_DragReport_Lock     2
  465. #define MUIV_DragReport_Refresh  3
  466.  
  467.  
  468.  
  469.  
  470. /***************************************************************************
  471. ** Control codes for text strings
  472. ***************************************************************************/
  473.  
  474. #define MUIX_R "\033r"    /* right justified */
  475. #define MUIX_C "\033c"    /* centered        */
  476. #define MUIX_L "\033l"    /* left justified  */
  477.  
  478. #define MUIX_N "\033n"    /* normal     */
  479. #define MUIX_B "\033b"    /* bold       */
  480. #define MUIX_I "\033i"    /* italic     */
  481. #define MUIX_U "\033u"    /* underlined */
  482.  
  483. #define MUIX_PT "\0332"   /* text pen           */
  484. #define MUIX_PH "\0338"   /* highlight text pen */
  485.  
  486.  
  487.  
  488. /***************************************************************************
  489. ** Parameter structures for some classes
  490. ***************************************************************************/
  491.  
  492. struct MUI_Palette_Entry
  493. {
  494.     LONG  mpe_ID;
  495.     ULONG mpe_Red;
  496.     ULONG mpe_Green;
  497.     ULONG mpe_Blue;
  498.     LONG  mpe_Group;
  499. };
  500.  
  501. #define MUIV_Palette_Entry_End -1
  502.  
  503.  
  504. /*****************************/
  505. /* Application Input Handler */
  506. /*****************************/
  507.  
  508. struct MUI_InputHandlerNode
  509. {
  510.     struct MinNode ihn_Node;
  511.     Object        *ihn_Object;
  512.  
  513.     union
  514.     {
  515.         ULONG ihn_sigs;
  516.         struct
  517.         {
  518.             UWORD ihn_millis;
  519.             UWORD ihn_current;
  520.         } ihn_timer;
  521.     }
  522.     ihn_stuff;
  523.  
  524.     ULONG          ihn_Flags; /* see below */
  525.     ULONG          ihn_Method;
  526. };
  527.  
  528. #define ihn_Signals ihn_stuff.ihn_sigs
  529. #define ihn_Millis  ihn_stuff.ihn_timer.ihn_millis
  530. #define ihn_Current ihn_stuff.ihn_timer.ihn_current
  531.  
  532. /* Flags for ihn_Flags */
  533. #define MUIIHNF_TIMER (1<<0) /* set ihn_Ticks to number of 1/100 sec ticks you want to be triggered */
  534.  
  535.  
  536. /************************/
  537. /* Window Event Handler */
  538. /************************/
  539.  
  540. struct MUI_EventHandlerNode
  541. {
  542.     struct MinNode ehn_Node;
  543.     BYTE           ehn_Reserved; /* don't touch! */
  544.     BYTE           ehn_Priority; /* event handlers are inserted according to their priority. */
  545.     UWORD          ehn_Flags;    /* certain flags, see below for definitions. */
  546.     Object        *ehn_Object;   /* object which should receive MUIM_HandleEvent. */
  547.     struct IClass *ehn_Class;    /* if !=NULL, MUIM_HandleEvent is invoked on exactly this class with CoerceMethod(). */
  548.     ULONG          ehn_Events;   /* one or more IDCMP flags this handler should react on. */
  549. };
  550.  
  551. /* flags for ehn_Flags */
  552. #define MUI_EHF_ALWAYSKEYS (1<<0)
  553.  
  554. /* other values reserved for future use */
  555.  
  556. /* return values for MUIM_HandleEvent (bit-masked, all other bits must be 0) */
  557. #define MUI_EventHandlerRC_Eat (1<<0) /* stop MUI from calling other handlers */
  558.  
  559.  
  560. /**********************/
  561. /* List Position Test */
  562. /**********************/
  563.  
  564. struct MUI_List_TestPos_Result
  565. {
  566.     LONG  entry;   /* number of entry, -1 if mouse not over valid entry */
  567.     WORD  column;  /* numer of column, -1 if no valid column */
  568.     UWORD flags;   /* see below */
  569.     WORD  xoffset; /* x offset of mouse click relative to column start */
  570.     WORD  yoffset; /* y offset of mouse click from center of line
  571.                       (negative values mean click was above center,
  572.                        positive values mean click was below center) */
  573. };
  574.  
  575. #define MUI_LPR_ABOVE  (1<<0)
  576. #define MUI_LPR_BELOW  (1<<1)
  577. #define MUI_LPR_LEFT   (1<<2)
  578. #define MUI_LPR_RIGHT  (1<<3)
  579.  
  580.  
  581. /***************************************************************************
  582. **
  583. ** Macro Section
  584. ** -------------
  585. **
  586. ** To make GUI creation more easy and understandable, you can use the
  587. ** macros below. If you dont want, just define MUI_NOSHORTCUTS to disable
  588. ** them.
  589. **
  590. ** These macros are available to C programmers only.
  591. **
  592. ***************************************************************************/
  593.  
  594. #ifndef MUI_NOSHORTCUTS
  595.  
  596.  
  597.  
  598. /***************************************************************************
  599. **
  600. ** Object Generation
  601. ** -----------------
  602. **
  603. ** The xxxObject (and xChilds) macros generate new instances of MUI classes.
  604. ** Every xxxObject can be followed by tagitems specifying initial create
  605. ** time attributes for the new object and must be terminated with the
  606. ** End macro:
  607. **
  608. ** obj = StringObject,
  609. **          MUIA_String_Contents, "foo",
  610. **          MUIA_String_MaxLen  , 40,
  611. **          End;
  612. **
  613. ** With the Child, SubWindow and WindowContents shortcuts you can
  614. ** construct a complete GUI within one command:
  615. **
  616. ** app = ApplicationObject,
  617. **
  618. **          ...
  619. **
  620. **          SubWindow, WindowObject,
  621. **             WindowContents, VGroup,
  622. **                Child, String("foo",40),
  623. **                Child, String("bar",50),
  624. **                Child, HGroup,
  625. **                   Child, CheckMark(TRUE),
  626. **                   Child, CheckMark(FALSE),
  627. **                   End,
  628. **                End,
  629. **             End,
  630. **
  631. **          SubWindow, WindowObject,
  632. **             WindowContents, HGroup,
  633. **                Child, ...,
  634. **                Child, ...,
  635. **                End,
  636. **             End,
  637. **
  638. **          ...
  639. **
  640. **          End;
  641. **
  642. ***************************************************************************/
  643.  
  644. #define MenustripObject     MUI_NewObject(MUIC_Menustrip
  645. #define MenuObject          MUI_NewObject(MUIC_Menu
  646. #define MenuObjectT(name)   MUI_NewObject(MUIC_Menu,MUIA_Menu_Title,name
  647. #define MenuitemObject      MUI_NewObject(MUIC_Menuitem
  648. #define WindowObject        MUI_NewObject(MUIC_Window
  649. #define ImageObject         MUI_NewObject(MUIC_Image
  650. #define BitmapObject        MUI_NewObject(MUIC_Bitmap
  651. #define BodychunkObject     MUI_NewObject(MUIC_Bodychunk
  652. #define NotifyObject        MUI_NewObject(MUIC_Notify
  653. #define ApplicationObject   MUI_NewObject(MUIC_Application
  654. #define TextObject          MUI_NewObject(MUIC_Text
  655. #define RectangleObject     MUI_NewObject(MUIC_Rectangle
  656. #define BalanceObject       MUI_NewObject(MUIC_Balance
  657. #define ListObject          MUI_NewObject(MUIC_List
  658. #define PropObject          MUI_NewObject(MUIC_Prop
  659. #define StringObject        MUI_NewObject(MUIC_String
  660. #define ScrollbarObject     MUI_NewObject(MUIC_Scrollbar
  661. #define ListviewObject      MUI_NewObject(MUIC_Listview
  662. #define RadioObject         MUI_NewObject(MUIC_Radio
  663. #define VolumelistObject    MUI_NewObject(MUIC_Volumelist
  664. #define FloattextObject     MUI_NewObject(MUIC_Floattext
  665. #define DirlistObject       MUI_NewObject(MUIC_Dirlist
  666. #define CycleObject         MUI_NewObject(MUIC_Cycle
  667. #define GaugeObject         MUI_NewObject(MUIC_Gauge
  668. #define ScaleObject         MUI_NewObject(MUIC_Scale
  669. #define NumericObject       MUI_NewObject(MUIC_Numeric
  670. #define SliderObject        MUI_NewObject(MUIC_Slider
  671. #define NumericbuttonObject MUI_NewObject(MUIC_Numericbutton
  672. #define KnobObject          MUI_NewObject(MUIC_Knob
  673. #define LevelmeterObject    MUI_NewObject(MUIC_Levelmeter
  674. #define BoopsiObject        MUI_NewObject(MUIC_Boopsi
  675. #define ColorfieldObject    MUI_NewObject(MUIC_Colorfield
  676. #define PenadjustObject     MUI_NewObject(MUIC_Penadjust
  677. #define ColoradjustObject   MUI_NewObject(MUIC_Coloradjust
  678. #define PaletteObject       MUI_NewObject(MUIC_Palette
  679. #define GroupObject         MUI_NewObject(MUIC_Group
  680. #define RegisterObject      MUI_NewObject(MUIC_Register
  681. #define VirtgroupObject     MUI_NewObject(MUIC_Virtgroup
  682. #define ScrollgroupObject   MUI_NewObject(MUIC_Scrollgroup
  683. #define PopstringObject     MUI_NewObject(MUIC_Popstring
  684. #define PopobjectObject     MUI_NewObject(MUIC_Popobject
  685. #define PoplistObject       MUI_NewObject(MUIC_Poplist
  686. #define PopaslObject        MUI_NewObject(MUIC_Popasl
  687. #define PendisplayObject    MUI_NewObject(MUIC_Pendisplay
  688. #define PoppenObject        MUI_NewObject(MUIC_Poppen
  689. #define AboutmuiObject      MUI_NewObject(MUIC_Aboutmui
  690. #define ScrmodelistObject   MUI_NewObject(MUIC_Scrmodelist
  691. #define KeyentryObject      MUI_NewObject(MUIC_Keyentry
  692. #define VGroup              MUI_NewObject(MUIC_Group
  693. #define HGroup              MUI_NewObject(MUIC_Group,MUIA_Group_Horiz,TRUE
  694. #define ColGroup(cols)      MUI_NewObject(MUIC_Group,MUIA_Group_Columns,(cols)
  695. #define RowGroup(rows)      MUI_NewObject(MUIC_Group,MUIA_Group_Rows   ,(rows)
  696. #define PageGroup           MUI_NewObject(MUIC_Group,MUIA_Group_PageMode,TRUE
  697. #define VGroupV             MUI_NewObject(MUIC_Virtgroup
  698. #define HGroupV             MUI_NewObject(MUIC_Virtgroup,MUIA_Group_Horiz,TRUE
  699. #define ColGroupV(cols)     MUI_NewObject(MUIC_Virtgroup,MUIA_Group_Columns,(cols)
  700. #define RowGroupV(rows)     MUI_NewObject(MUIC_Virtgroup,MUIA_Group_Rows   ,(rows)
  701. #define PageGroupV          MUI_NewObject(MUIC_Virtgroup,MUIA_Group_PageMode,TRUE
  702. #define RegisterGroup(t)    MUI_NewObject(MUIC_Register,MUIA_Register_Titles,(t)
  703. #define End                 TAG_DONE)
  704.  
  705. #define Child             MUIA_Group_Child
  706. #define SubWindow         MUIA_Application_Window
  707. #define WindowContents    MUIA_Window_RootObject
  708.  
  709.  
  710.  
  711. /***************************************************************************
  712. **
  713. ** Frame Types
  714. ** -----------
  715. **
  716. ** These macros may be used to specify one of MUI's different frame types.
  717. ** Note that every macro consists of one { ti_Tag, ti_Data } pair.
  718. **
  719. ** GroupFrameT() is a special kind of frame that contains a centered
  720. ** title text.
  721. **
  722. ** HGroup, GroupFrameT("Horiz Groups"),
  723. **    Child, RectangleObject, TextFrame  , End,
  724. **    Child, RectangleObject, StringFrame, End,
  725. **    Child, RectangleObject, ButtonFrame, End,
  726. **    Child, RectangleObject, ListFrame  , End,
  727. **    End,
  728. **
  729. ***************************************************************************/
  730.  
  731. #define NoFrame          MUIA_Frame, MUIV_Frame_None
  732. #define ButtonFrame      MUIA_Frame, MUIV_Frame_Button
  733. #define ImageButtonFrame MUIA_Frame, MUIV_Frame_ImageButton
  734. #define TextFrame        MUIA_Frame, MUIV_Frame_Text
  735. #define StringFrame      MUIA_Frame, MUIV_Frame_String
  736. #define ReadListFrame    MUIA_Frame, MUIV_Frame_ReadList
  737. #define InputListFrame   MUIA_Frame, MUIV_Frame_InputList
  738. #define PropFrame        MUIA_Frame, MUIV_Frame_Prop
  739. #define SliderFrame      MUIA_Frame, MUIV_Frame_Slider
  740. #define GaugeFrame       MUIA_Frame, MUIV_Frame_Gauge
  741. #define VirtualFrame     MUIA_Frame, MUIV_Frame_Virtual
  742. #define GroupFrame       MUIA_Frame, MUIV_Frame_Group
  743. #define GroupFrameT(s)   MUIA_Frame, MUIV_Frame_Group, MUIA_FrameTitle, s, MUIA_Background, MUII_GroupBack
  744.  
  745.  
  746.  
  747. /***************************************************************************
  748. **
  749. ** Spacing Macros
  750. ** --------------
  751. **
  752. ***************************************************************************/
  753.  
  754. #define HVSpace           MUI_NewObject(MUIC_Rectangle,TAG_DONE)
  755. #define HSpace(x)         MUI_MakeObject(MUIO_HSpace,x)
  756. #define VSpace(x)         MUI_MakeObject(MUIO_VSpace,x)
  757. #define HCenter(obj)      (HGroup, GroupSpacing(0), Child, HSpace(0), Child, (obj), Child, HSpace(0), End)
  758. #define VCenter(obj)      (VGroup, GroupSpacing(0), Child, VSpace(0), Child, (obj), Child, VSpace(0), End)
  759. #define InnerSpacing(h,v) MUIA_InnerLeft,(h),MUIA_InnerRight,(h),MUIA_InnerTop,(v),MUIA_InnerBottom,(v)
  760. #define GroupSpacing(x)   MUIA_Group_Spacing,x
  761.  
  762.  
  763.  
  764. #ifdef MUI_OBSOLETE
  765.  
  766. /***************************************************************************
  767. **
  768. ** String-Object
  769. ** -------------
  770. **
  771. ** The following macro creates a simple string gadget.
  772. **
  773. ***************************************************************************/
  774.  
  775. #define String(contents,maxlen)\
  776.     StringObject,\
  777.         StringFrame,\
  778.         MUIA_String_MaxLen  , maxlen,\
  779.         MUIA_String_Contents, contents,\
  780.         End
  781.  
  782. #define KeyString(contents,maxlen,controlchar)\
  783.     StringObject,\
  784.         StringFrame,\
  785.         MUIA_ControlChar    , controlchar,\
  786.         MUIA_String_MaxLen  , maxlen,\
  787.         MUIA_String_Contents, contents,\
  788.         End
  789.  
  790. #endif
  791.  
  792.  
  793.  
  794. #ifdef MUI_OBSOLETE
  795.  
  796. /***************************************************************************
  797. **
  798. ** CheckMark-Object
  799. ** ----------------
  800. **
  801. ** The following macro creates a checkmark gadget.
  802. **
  803. ***************************************************************************/
  804.  
  805. #define CheckMark(selected)\
  806.     ImageObject,\
  807.         ImageButtonFrame,\
  808.         MUIA_InputMode        , MUIV_InputMode_Toggle,\
  809.         MUIA_Image_Spec       , MUII_CheckMark,\
  810.         MUIA_Image_FreeVert   , TRUE,\
  811.         MUIA_Selected         , selected,\
  812.         MUIA_Background       , MUII_ButtonBack,\
  813.         MUIA_ShowSelState     , FALSE,\
  814.         End
  815.  
  816. #define KeyCheckMark(selected,control)\
  817.     ImageObject,\
  818.         ImageButtonFrame,\
  819.         MUIA_InputMode        , MUIV_InputMode_Toggle,\
  820.         MUIA_Image_Spec       , MUII_CheckMark,\
  821.         MUIA_Image_FreeVert   , TRUE,\
  822.         MUIA_Selected         , selected,\
  823.         MUIA_Background       , MUII_ButtonBack,\
  824.         MUIA_ShowSelState     , FALSE,\
  825.         MUIA_ControlChar      , control,\
  826.         End
  827.  
  828. #endif
  829.  
  830.  
  831. /***************************************************************************
  832. **
  833. ** Button-Objects
  834. ** --------------
  835. **
  836. ** Note: Use small letters for KeyButtons, e.g.
  837. **       KeyButton("Cancel",'c')  and not  KeyButton("Cancel",'C') !!
  838. **
  839. ***************************************************************************/
  840.  
  841. #define SimpleButton(label) MUI_MakeObject(MUIO_Button,label)
  842.  
  843. #ifdef MUI_OBSOLETE
  844.  
  845. #define KeyButton(name,key)\
  846.     TextObject,\
  847.         ButtonFrame,\
  848.         MUIA_Font, MUIV_Font_Button,\
  849.         MUIA_Text_Contents, name,\
  850.         MUIA_Text_PreParse, "\33c",\
  851.         MUIA_Text_HiChar  , key,\
  852.         MUIA_ControlChar  , key,\
  853.         MUIA_InputMode    , MUIV_InputMode_RelVerify,\
  854.         MUIA_Background   , MUII_ButtonBack,\
  855.         End
  856.  
  857. #endif
  858.  
  859.  
  860. #ifdef MUI_OBSOLETE
  861.  
  862. /***************************************************************************
  863. **
  864. ** Cycle-Object
  865. ** ------------
  866. **
  867. ***************************************************************************/
  868.  
  869. #define Cycle(entries)        CycleObject, MUIA_Font, MUIV_Font_Button, MUIA_Cycle_Entries, entries, End
  870. #define KeyCycle(entries,key) CycleObject, MUIA_Font, MUIV_Font_Button, MUIA_Cycle_Entries, entries, MUIA_ControlChar, key, End
  871.  
  872.  
  873.  
  874. /***************************************************************************
  875. **
  876. ** Radio-Object
  877. ** ------------
  878. **
  879. ***************************************************************************/
  880.  
  881. #define Radio(name,array)\
  882.     RadioObject,\
  883.         GroupFrameT(name),\
  884.         MUIA_Radio_Entries,array,\
  885.         End
  886.  
  887. #define KeyRadio(name,array,key)\
  888.     RadioObject,\
  889.         GroupFrameT(name),\
  890.         MUIA_Radio_Entries,array,\
  891.         MUIA_ControlChar, key,\
  892.         End
  893.  
  894.  
  895.  
  896. /***************************************************************************
  897. **
  898. ** Slider-Object
  899. ** -------------
  900. **
  901. ***************************************************************************/
  902.  
  903.  
  904. #define Slider(min,max,level)\
  905.     SliderObject,\
  906.         MUIA_Numeric_Min  , min,\
  907.         MUIA_Numeric_Max  , max,\
  908.         MUIA_Numeric_Value, level,\
  909.         End
  910.  
  911. #define KeySlider(min,max,level,key)\
  912.     SliderObject,\
  913.         MUIA_Numeric_Min  , min,\
  914.         MUIA_Numeric_Max  , max,\
  915.         MUIA_Numeric_Value, level,\
  916.         MUIA_ControlChar , key,\
  917.         End
  918.  
  919. #endif
  920.  
  921.  
  922.  
  923. /***************************************************************************
  924. **
  925. ** Button to be used for popup objects
  926. **
  927. ***************************************************************************/
  928.  
  929. #define PopButton(img) MUI_MakeObject(MUIO_PopButton,img)
  930.  
  931.  
  932.  
  933. /***************************************************************************
  934. **
  935. ** Labeling Objects
  936. ** ----------------
  937. **
  938. ** Labeling objects, e.g. a group of string gadgets,
  939. **
  940. **   Small: |foo   |
  941. **  Normal: |bar   |
  942. **     Big: |foobar|
  943. **    Huge: |barfoo|
  944. **
  945. ** is done using a 2 column group:
  946. **
  947. ** ColGroup(2),
  948. **     Child, Label2("Small:" ),
  949. **    Child, StringObject, End,
  950. **     Child, Label2("Normal:"),
  951. **    Child, StringObject, End,
  952. **     Child, Label2("Big:"   ),
  953. **    Child, StringObject, End,
  954. **     Child, Label2("Huge:"  ),
  955. **    Child, StringObject, End,
  956. **    End,
  957. **
  958. ** Note that we have three versions of the label macro, depending on
  959. ** the frame type of the right hand object:
  960. **
  961. ** Label1(): For use with standard frames (e.g. checkmarks).
  962. ** Label2(): For use with double high frames (e.g. string gadgets).
  963. ** Label() : For use with objects without a frame.
  964. **
  965. ** These macros ensure that your label will look fine even if the
  966. ** user of your application configured some strange spacing values.
  967. ** If you want to use your own labeling, you'll have to pay attention
  968. ** on this topic yourself.
  969. **
  970. ***************************************************************************/
  971.  
  972. #define Label(label)   MUI_MakeObject(MUIO_Label,label,0)
  973. #define Label1(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_SingleFrame)
  974. #define Label2(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_DoubleFrame)
  975. #define LLabel(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned)
  976. #define LLabel1(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|MUIO_Label_SingleFrame)
  977. #define LLabel2(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|MUIO_Label_DoubleFrame)
  978. #define CLabel(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_Centered)
  979. #define CLabel1(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_Centered|MUIO_Label_SingleFrame)
  980. #define CLabel2(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_Centered|MUIO_Label_DoubleFrame)
  981.  
  982. #define FreeLabel(label)   MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert)
  983. #define FreeLabel1(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_SingleFrame)
  984. #define FreeLabel2(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_DoubleFrame)
  985. #define FreeLLabel(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_LeftAligned)
  986. #define FreeLLabel1(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_LeftAligned|MUIO_Label_SingleFrame)
  987. #define FreeLLabel2(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_LeftAligned|MUIO_Label_DoubleFrame)
  988. #define FreeCLabel(label)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_Centered)
  989. #define FreeCLabel1(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_Centered|MUIO_Label_SingleFrame)
  990. #define FreeCLabel2(label) MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_Centered|MUIO_Label_DoubleFrame)
  991.  
  992. #define KeyLabel(label,key)   MUI_MakeObject(MUIO_Label,label,key)
  993. #define KeyLabel1(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_SingleFrame|(key))
  994. #define KeyLabel2(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_DoubleFrame|(key))
  995. #define KeyLLabel(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|(key))
  996. #define KeyLLabel1(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|MUIO_Label_SingleFrame|(key))
  997. #define KeyLLabel2(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_LeftAligned|MUIO_Label_DoubleFrame|(key))
  998. #define KeyCLabel(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_Centered|(key))
  999. #define KeyCLabel1(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_Centered|MUIO_Label_SingleFrame|(key))
  1000. #define KeyCLabel2(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_Centered|MUIO_Label_DoubleFrame|(key))
  1001.  
  1002. #define FreeKeyLabel(label,key)   MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|(key))
  1003. #define FreeKeyLabel1(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_SingleFrame|(key))
  1004. #define FreeKeyLabel2(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_DoubleFrame|(key))
  1005. #define FreeKeyLLabel(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_LeftAligned|(key))
  1006. #define FreeKeyLLabel1(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_LeftAligned|MUIO_Label_SingleFrame|(key))
  1007. #define FreeKeyLLabel2(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_LeftAligned|MUIO_Label_DoubleFrame|(key))
  1008. #define FreeKeyCLabel(label,key)  MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_Centered|(key))
  1009. #define FreeKeyCLabel1(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_Centered|MUIO_Label_SingleFrame|(key))
  1010. #define FreeKeyCLabel2(label,key) MUI_MakeObject(MUIO_Label,label,MUIO_Label_FreeVert|MUIO_Label_Centered|MUIO_Label_DoubleFrame|(key))
  1011.  
  1012.  
  1013.  
  1014. /***************************************************************************
  1015. **
  1016. ** Controlling Objects
  1017. ** -------------------
  1018. **
  1019. ** set() and get() are two short stubs for BOOPSI GetAttr() and SetAttrs()
  1020. ** calls:
  1021. **
  1022. ** {
  1023. **    char *x;
  1024. **
  1025. **    set(obj,MUIA_String_Contents,"foobar");
  1026. **    get(obj,MUIA_String_Contents,&x);
  1027. **
  1028. **    printf("gadget contains '%s'\n",x);
  1029. ** }
  1030. **
  1031. ** nnset() sets an attribute without triggering a possible notification.
  1032. **
  1033. ***************************************************************************/
  1034.  
  1035. #ifndef __cplusplus
  1036.  
  1037. #define get(obj,attr,store) GetAttr(attr,obj,(ULONG *)store)
  1038. #define set(obj,attr,value) SetAttrs(obj,attr,value,TAG_DONE)
  1039. #define nnset(obj,attr,value) SetAttrs(obj,MUIA_NoNotify,TRUE,attr,value,TAG_DONE)
  1040.  
  1041. #define setmutex(obj,n)     set(obj,MUIA_Radio_Active,n)
  1042. #define setcycle(obj,n)     set(obj,MUIA_Cycle_Active,n)
  1043. #define setstring(obj,s)    set(obj,MUIA_String_Contents,s)
  1044. #define setcheckmark(obj,b) set(obj,MUIA_Selected,b)
  1045. #define setslider(obj,l)    set(obj,MUIA_Numeric_Value,l)
  1046.  
  1047. #endif
  1048.  
  1049.  
  1050. #endif /* MUI_NOSHORTCUTS */
  1051.  
  1052.  
  1053. /***************************************************************************
  1054. **
  1055. ** For Boopsi Image Implementors Only:
  1056. **
  1057. ** If MUI is using a boopsi image object, it will send a special method
  1058. ** immediately after object creation. This method has a parameter structure
  1059. ** where the boopsi can fill in its minimum and maximum size and learn if
  1060. ** its used in a horizontal or vertical context.
  1061. **
  1062. ** The boopsi image must use the method id (MUIM_BoopsiQuery) as return
  1063. ** value. That's how MUI sees that the method is implemented.
  1064. **
  1065. ** Note: MUI does not depend on this method. If the boopsi image doesn't
  1066. **       implement it, minimum size will be 0 and maximum size unlimited.
  1067. **
  1068. ***************************************************************************/
  1069.  
  1070. #define MUIM_BoopsiQuery 0x80427157 /* this is send to the boopsi and */
  1071.                                     /* must be used as return value   */
  1072.  
  1073. struct MUI_BoopsiQuery              /* parameter structure */
  1074. {
  1075.     ULONG mbq_MethodID;              /* always MUIM_BoopsiQuery */
  1076.  
  1077.     struct Screen *mbq_Screen;       /* obsolete, use mbq_RenderInfo */
  1078.     ULONG mbq_Flags;                 /* read only, see below */
  1079.  
  1080.     LONG mbq_MinWidth ;              /* write only, fill in min width  */
  1081.     LONG mbq_MinHeight;              /* write only, fill in min height */
  1082.     LONG mbq_MaxWidth ;              /* write only, fill in max width  */
  1083.     LONG mbq_MaxHeight;              /* write only, fill in max height */
  1084.     LONG mbq_DefWidth ;              /* write only, fill in def width  */
  1085.     LONG mbq_DefHeight;              /* write only, fill in def height */
  1086.  
  1087.     struct MUI_RenderInfo *mbq_RenderInfo;  /* read only, display context */
  1088.  
  1089.     /* may grow in future ... */
  1090. };
  1091.  
  1092. #define MUIP_BoopsiQuery MUI_BoopsiQuery  /* old structure name */
  1093.  
  1094. #define MBQF_HORIZ (1<<0)           /* object used in a horizontal */
  1095.                                     /* context (else vertical)     */
  1096.  
  1097. #define MBQ_MUI_MAXMAX (10000)          /* use this for unlimited MaxWidth/Height */
  1098.  
  1099.  
  1100. /*******************************************/
  1101. /* Begin of automatic header file creation */
  1102. /*******************************************/
  1103.  
  1104.  
  1105.  
  1106.  
  1107. /****************************************************************************/
  1108. /** Notify                                                                 **/
  1109. /****************************************************************************/
  1110.  
  1111. #ifdef _DCC
  1112. extern char MUIC_Notify[];
  1113. #else
  1114. #define MUIC_Notify "Notify.mui"
  1115. #endif
  1116.  
  1117. /* Methods */
  1118.  
  1119. #define MUIM_CallHook                       0x8042b96b /* V4  */
  1120. #define MUIM_Export                         0x80420f1c /* V12 */
  1121. #define MUIM_FindUData                      0x8042c196 /* V8  */
  1122. #define MUIM_GetConfigItem                  0x80423edb /* V11 */
  1123. #define MUIM_GetUData                       0x8042ed0c /* V8  */
  1124. #define MUIM_Import                         0x8042d012 /* V12 */
  1125. #define MUIM_KillNotify                     0x8042d240 /* V4  */
  1126. #define MUIM_KillNotifyObj                  0x8042b145 /* V16 */
  1127. #define MUIM_MultiSet                       0x8042d356 /* V7  */
  1128. #define MUIM_NoNotifySet                    0x8042216f /* V9  */
  1129. #define MUIM_Notify                         0x8042c9cb /* V4  */
  1130. #define MUIM_Set                            0x8042549a /* V4  */
  1131. #define MUIM_SetAsString                    0x80422590 /* V4  */
  1132. #define MUIM_SetUData                       0x8042c920 /* V8  */
  1133. #define MUIM_SetUDataOnce                   0x8042ca19 /* V11 */
  1134. #define MUIM_WriteLong                      0x80428d86 /* V6  */
  1135. #define MUIM_WriteString                    0x80424bf4 /* V6  */
  1136. struct  MUIP_CallHook                       { ULONG MethodID; struct Hook *Hook; ULONG param1; /* ... */ };
  1137. struct  MUIP_Export                         { ULONG MethodID; Object *dataspace; };
  1138. struct  MUIP_FindUData                      { ULONG MethodID; ULONG udata; };
  1139. struct  MUIP_GetConfigItem                  { ULONG MethodID; ULONG id; ULONG *storage; };
  1140. struct  MUIP_GetUData                       { ULONG MethodID; ULONG udata; ULONG attr; ULONG *storage; };
  1141. struct  MUIP_Import                         { ULONG MethodID; Object *dataspace; };
  1142. struct  MUIP_KillNotify                     { ULONG MethodID; ULONG TrigAttr; };
  1143. struct  MUIP_KillNotifyObj                  { ULONG MethodID; ULONG TrigAttr; Object *dest; };
  1144. struct  MUIP_MultiSet                       { ULONG MethodID; ULONG attr; ULONG val; APTR obj; /* ... */ };
  1145. struct  MUIP_NoNotifySet                    { ULONG MethodID; ULONG attr; char *format; ULONG val; /* ... */ };
  1146. struct  MUIP_Notify                         { ULONG MethodID; ULONG TrigAttr; ULONG TrigVal; APTR DestObj; ULONG FollowParams; /* ... */ };
  1147. struct  MUIP_Set                            { ULONG MethodID; ULONG attr; ULONG val; };
  1148. struct  MUIP_SetAsString                    { ULONG MethodID; ULONG attr; char *format; ULONG val; /* ... */ };
  1149. struct  MUIP_SetUData                       { ULONG MethodID; ULONG udata; ULONG attr; ULONG val; };
  1150. struct  MUIP_SetUDataOnce                   { ULONG MethodID; ULONG udata; ULONG attr; ULONG val; };
  1151. struct  MUIP_WriteLong                      { ULONG MethodID; ULONG val; ULONG *memory; };
  1152. struct  MUIP_WriteString                    { ULONG MethodID; char *str; char *memory; };
  1153.  
  1154. /* Attributes */
  1155.  
  1156. #define MUIA_ApplicationObject              0x8042d3ee /* V4  ..g Object *          */
  1157. #define MUIA_AppMessage                     0x80421955 /* V5  ..g struct AppMessage * */
  1158. #define MUIA_HelpLine                       0x8042a825 /* V4  isg LONG              */
  1159. #define MUIA_HelpNode                       0x80420b85 /* V4  isg STRPTR            */
  1160. #define MUIA_NoNotify                       0x804237f9 /* V7  .s. BOOL              */
  1161. #define MUIA_ObjectID                       0x8042d76e /* V11 isg ULONG             */
  1162. #define MUIA_Parent                         0x8042e35f /* V11 ..g Object *          */
  1163. #define MUIA_Revision                       0x80427eaa /* V4  ..g LONG              */
  1164. #define MUIA_UserData                       0x80420313 /* V4  isg ULONG             */
  1165. #define MUIA_Version                        0x80422301 /* V4  ..g LONG              */
  1166.  
  1167.  
  1168.  
  1169. /****************************************************************************/
  1170. /** Family                                                                 **/
  1171. /****************************************************************************/
  1172.  
  1173. #ifdef _DCC
  1174. extern char MUIC_Family[];
  1175. #else
  1176. #define MUIC_Family "Family.mui"
  1177. #endif
  1178.  
  1179. /* Methods */
  1180.  
  1181. #define MUIM_Family_AddHead                 0x8042e200 /* V8  */
  1182. #define MUIM_Family_AddTail                 0x8042d752 /* V8  */
  1183. #define MUIM_Family_Insert                  0x80424d34 /* V8  */
  1184. #define MUIM_Family_Remove                  0x8042f8a9 /* V8  */
  1185. #define MUIM_Family_Sort                    0x80421c49 /* V8  */
  1186. #define MUIM_Family_Transfer                0x8042c14a /* V8  */
  1187. struct  MUIP_Family_AddHead                 { ULONG MethodID; Object *obj; };
  1188. struct  MUIP_Family_AddTail                 { ULONG MethodID; Object *obj; };
  1189. struct  MUIP_Family_Insert                  { ULONG MethodID; Object *obj; Object *pred; };
  1190. struct  MUIP_Family_Remove                  { ULONG MethodID; Object *obj; };
  1191. struct  MUIP_Family_Sort                    { ULONG MethodID; Object *obj[1]; };
  1192. struct  MUIP_Family_Transfer                { ULONG MethodID; Object *family; };
  1193.  
  1194. /* Attributes */
  1195.  
  1196. #define MUIA_Family_Child                   0x8042c696 /* V8  i.. Object *          */
  1197. #define MUIA_Family_List                    0x80424b9e /* V8  ..g struct MinList *  */
  1198.  
  1199.  
  1200.  
  1201. /****************************************************************************/
  1202. /** Menustrip                                                              **/
  1203. /****************************************************************************/
  1204.  
  1205. #ifdef _DCC
  1206. extern char MUIC_Menustrip[];
  1207. #else
  1208. #define MUIC_Menustrip "Menustrip.mui"
  1209. #endif
  1210.  
  1211. /* Methods */
  1212.  
  1213.  
  1214. /* Attributes */
  1215.  
  1216. #define MUIA_Menustrip_Enabled              0x8042815b /* V8  isg BOOL              */
  1217.  
  1218.  
  1219.  
  1220. /****************************************************************************/
  1221. /** Menu                                                                   **/
  1222. /****************************************************************************/
  1223.  
  1224. #ifdef _DCC
  1225. extern char MUIC_Menu[];
  1226. #else
  1227. #define MUIC_Menu "Menu.mui"
  1228. #endif
  1229.  
  1230. /* Methods */
  1231.  
  1232.  
  1233. /* Attributes */
  1234.  
  1235. #define MUIA_Menu_Enabled                   0x8042ed48 /* V8  isg BOOL              */
  1236. #define MUIA_Menu_Title                     0x8042a0e3 /* V8  isg STRPTR            */
  1237.  
  1238.  
  1239.  
  1240. /****************************************************************************/
  1241. /** Menuitem                                                               **/
  1242. /****************************************************************************/
  1243.  
  1244. #ifdef _DCC
  1245. extern char MUIC_Menuitem[];
  1246. #else
  1247. #define MUIC_Menuitem "Menuitem.mui"
  1248. #endif
  1249.  
  1250. /* Methods */
  1251.  
  1252.  
  1253. /* Attributes */
  1254.  
  1255. #define MUIA_Menuitem_Checked               0x8042562a /* V8  isg BOOL              */
  1256. #define MUIA_Menuitem_Checkit               0x80425ace /* V8  isg BOOL              */
  1257. #define MUIA_Menuitem_CommandString         0x8042b9cc /* V16 isg BOOL              */
  1258. #define MUIA_Menuitem_Enabled               0x8042ae0f /* V8  isg BOOL              */
  1259. #define MUIA_Menuitem_Exclude               0x80420bc6 /* V8  isg LONG              */
  1260. #define MUIA_Menuitem_Shortcut              0x80422030 /* V8  isg STRPTR            */
  1261. #define MUIA_Menuitem_Title                 0x804218be /* V8  isg STRPTR            */
  1262. #define MUIA_Menuitem_Toggle                0x80424d5c /* V8  isg BOOL              */
  1263. #define MUIA_Menuitem_Trigger               0x80426f32 /* V8  ..g struct MenuItem * */
  1264.  
  1265. #define MUIV_Menuitem_Shortcut_Check -1
  1266.  
  1267.  
  1268. /****************************************************************************/
  1269. /** Application                                                            **/
  1270. /****************************************************************************/
  1271.  
  1272. #ifdef _DCC
  1273. extern char MUIC_Application[];
  1274. #else
  1275. #define MUIC_Application "Application.mui"
  1276. #endif
  1277.  
  1278. /* Methods */
  1279.  
  1280. #define MUIM_Application_AboutMUI           0x8042d21d /* V14 */
  1281. #define MUIM_Application_AddInputHandler    0x8042f099 /* V11 */
  1282. #define MUIM_Application_CheckRefresh       0x80424d68 /* V11 */
  1283. #ifdef MUI_OBSOLETE
  1284. #define MUIM_Application_GetMenuCheck       0x8042c0a7 /* V4  */
  1285. #endif /* MUI_OBSOLETE */
  1286. #ifdef MUI_OBSOLETE
  1287. #define MUIM_Application_GetMenuState       0x8042a58f /* V4  */
  1288. #endif /* MUI_OBSOLETE */
  1289. #ifdef MUI_OBSOLETE
  1290. #define MUIM_Application_Input              0x8042d0f5 /* V4  */
  1291. #endif /* MUI_OBSOLETE */
  1292. #define MUIM_Application_InputBuffered      0x80427e59 /* V4  */
  1293. #define MUIM_Application_Load               0x8042f90d /* V4  */
  1294. #define MUIM_Application_NewInput           0x80423ba6 /* V11 */
  1295. #define MUIM_Application_OpenConfigWindow   0x804299ba /* V11 */
  1296. #define MUIM_Application_PushMethod         0x80429ef8 /* V4  */
  1297. #define MUIM_Application_RemInputHandler    0x8042e7af /* V11 */
  1298. #define MUIM_Application_ReturnID           0x804276ef /* V4  */
  1299. #define MUIM_Application_Save               0x804227ef /* V4  */
  1300. #define MUIM_Application_SetConfigItem      0x80424a80 /* V11 */
  1301. #ifdef MUI_OBSOLETE
  1302. #define MUIM_Application_SetMenuCheck       0x8042a707 /* V4  */
  1303. #endif /* MUI_OBSOLETE */
  1304. #ifdef MUI_OBSOLETE
  1305. #define MUIM_Application_SetMenuState       0x80428bef /* V4  */
  1306. #endif /* MUI_OBSOLETE */
  1307. #define MUIM_Application_ShowHelp           0x80426479 /* V4  */
  1308. struct  MUIP_Application_AboutMUI           { ULONG MethodID; Object *refwindow; };
  1309. struct  MUIP_Application_AddInputHandler    { ULONG MethodID; struct MUI_InputHandlerNode *ihnode; };
  1310. struct  MUIP_Application_CheckRefresh       { ULONG MethodID; };
  1311. struct  MUIP_Application_GetMenuCheck       { ULONG MethodID; ULONG MenuID; };
  1312. struct  MUIP_Application_GetMenuState       { ULONG MethodID; ULONG MenuID; };
  1313. struct  MUIP_Application_Input              { ULONG MethodID; LONGBITS *signal; };
  1314. struct  MUIP_Application_InputBuffered      { ULONG MethodID; };
  1315. struct  MUIP_Application_Load               { ULONG MethodID; STRPTR name; };
  1316. struct  MUIP_Application_NewInput           { ULONG MethodID; LONGBITS *signal; };
  1317. struct  MUIP_Application_OpenConfigWindow   { ULONG MethodID; ULONG flags; };
  1318. struct  MUIP_Application_PushMethod         { ULONG MethodID; Object *dest; LONG count; /* ... */ };
  1319. struct  MUIP_Application_RemInputHandler    { ULONG MethodID; struct MUI_InputHandlerNode *ihnode; };
  1320. struct  MUIP_Application_ReturnID           { ULONG MethodID; ULONG retid; };
  1321. struct  MUIP_Application_Save               { ULONG MethodID; STRPTR name; };
  1322. struct  MUIP_Application_SetConfigItem      { ULONG MethodID; ULONG item; APTR data; };
  1323. struct  MUIP_Application_SetMenuCheck       { ULONG MethodID; ULONG MenuID; LONG stat; };
  1324. struct  MUIP_Application_SetMenuState       { ULONG MethodID; ULONG MenuID; LONG stat; };
  1325. struct  MUIP_Application_ShowHelp           { ULONG MethodID; Object *window; char *name; char *node; LONG line; };
  1326.  
  1327. /* Attributes */
  1328.  
  1329. #define MUIA_Application_Active             0x804260ab /* V4  isg BOOL              */
  1330. #define MUIA_Application_Author             0x80424842 /* V4  i.g STRPTR            */
  1331. #define MUIA_Application_Base               0x8042e07a /* V4  i.g STRPTR            */
  1332. #define MUIA_Application_Broker             0x8042dbce /* V4  ..g Broker *          */
  1333. #define MUIA_Application_BrokerHook         0x80428f4b /* V4  isg struct Hook *     */
  1334. #define MUIA_Application_BrokerPort         0x8042e0ad /* V6  ..g struct MsgPort *  */
  1335. #define MUIA_Application_BrokerPri          0x8042c8d0 /* V6  i.g LONG              */
  1336. #define MUIA_Application_Commands           0x80428648 /* V4  isg struct MUI_Command * */
  1337. #define MUIA_Application_Copyright          0x8042ef4d /* V4  i.g STRPTR            */
  1338. #define MUIA_Application_Description        0x80421fc6 /* V4  i.g STRPTR            */
  1339. #define MUIA_Application_DiskObject         0x804235cb /* V4  isg struct DiskObject * */
  1340. #define MUIA_Application_DoubleStart        0x80423bc6 /* V4  ..g BOOL              */
  1341. #define MUIA_Application_DropObject         0x80421266 /* V5  is. Object *          */
  1342. #define MUIA_Application_ForceQuit          0x804257df /* V8  ..g BOOL              */
  1343. #define MUIA_Application_HelpFile           0x804293f4 /* V8  isg STRPTR            */
  1344. #define MUIA_Application_Iconified          0x8042a07f /* V4  .sg BOOL              */
  1345. #ifdef MUI_OBSOLETE
  1346. #define MUIA_Application_Menu               0x80420e1f /* V4  i.g struct NewMenu *  */
  1347. #endif /* MUI_OBSOLETE */
  1348. #define MUIA_Application_MenuAction         0x80428961 /* V4  ..g ULONG             */
  1349. #define MUIA_Application_MenuHelp           0x8042540b /* V4  ..g ULONG             */
  1350. #define MUIA_Application_Menustrip          0x804252d9 /* V8  i.. Object *          */
  1351. #define MUIA_Application_RexxHook           0x80427c42 /* V7  isg struct Hook *     */
  1352. #define MUIA_Application_RexxMsg            0x8042fd88 /* V4  ..g struct RxMsg *    */
  1353. #define MUIA_Application_RexxString         0x8042d711 /* V4  .s. STRPTR            */
  1354. #define MUIA_Application_SingleTask         0x8042a2c8 /* V4  i.. BOOL              */
  1355. #define MUIA_Application_Sleep              0x80425711 /* V4  .s. BOOL              */
  1356. #define MUIA_Application_Title              0x804281b8 /* V4  i.g STRPTR            */
  1357. #define MUIA_Application_UseCommodities     0x80425ee5 /* V10 i.. BOOL              */
  1358. #define MUIA_Application_UseRexx            0x80422387 /* V10 i.. BOOL              */
  1359. #define MUIA_Application_Version            0x8042b33f /* V4  i.g STRPTR            */
  1360. #define MUIA_Application_Window             0x8042bfe0 /* V4  i.. Object *          */
  1361. #define MUIA_Application_WindowList         0x80429abe /* V13 ..g struct List *     */
  1362.  
  1363. #define MUIV_Application_Package_NetConnect 0xa3ff7b49
  1364.  
  1365.  
  1366. /****************************************************************************/
  1367. /** Window                                                                 **/
  1368. /****************************************************************************/
  1369.  
  1370. #ifdef _DCC
  1371. extern char MUIC_Window[];
  1372. #else
  1373. #define MUIC_Window "Window.mui"
  1374. #endif
  1375.  
  1376. /* Methods */
  1377.  
  1378. #define MUIM_Window_AddEventHandler         0x804203b7 /* V16 */
  1379. #ifdef MUI_OBSOLETE
  1380. #define MUIM_Window_GetMenuCheck            0x80420414 /* V4  */
  1381. #endif /* MUI_OBSOLETE */
  1382. #ifdef MUI_OBSOLETE
  1383. #define MUIM_Window_GetMenuState            0x80420d2f /* V4  */
  1384. #endif /* MUI_OBSOLETE */
  1385. #define MUIM_Window_RemEventHandler         0x8042679e /* V16 */
  1386. #define MUIM_Window_ScreenToBack            0x8042913d /* V4  */
  1387. #define MUIM_Window_ScreenToFront           0x804227a4 /* V4  */
  1388. #ifdef MUI_OBSOLETE
  1389. #define MUIM_Window_SetCycleChain           0x80426510 /* V4  */
  1390. #endif /* MUI_OBSOLETE */
  1391. #ifdef MUI_OBSOLETE
  1392. #define MUIM_Window_SetMenuCheck            0x80422243 /* V4  */
  1393. #endif /* MUI_OBSOLETE */
  1394. #ifdef MUI_OBSOLETE
  1395. #define MUIM_Window_SetMenuState            0x80422b5e /* V4  */
  1396. #endif /* MUI_OBSOLETE */
  1397. #define MUIM_Window_Snapshot                0x8042945e /* V11 */
  1398. #define MUIM_Window_ToBack                  0x8042152e /* V4  */
  1399. #define MUIM_Window_ToFront                 0x8042554f /* V4  */
  1400. struct  MUIP_Window_AddEventHandler         { ULONG MethodID; struct MUI_EventHandlerNode *ehnode; };
  1401. struct  MUIP_Window_GetMenuCheck            { ULONG MethodID; ULONG MenuID; };
  1402. struct  MUIP_Window_GetMenuState            { ULONG MethodID; ULONG MenuID; };
  1403. struct  MUIP_Window_RemEventHandler         { ULONG MethodID; struct MUI_EventHandlerNode *ehnode; };
  1404. struct  MUIP_Window_ScreenToBack            { ULONG MethodID; };
  1405. struct  MUIP_Window_ScreenToFront           { ULONG MethodID; };
  1406. struct  MUIP_Window_SetCycleChain           { ULONG MethodID; Object *obj[1]; };
  1407. struct  MUIP_Window_SetMenuCheck            { ULONG MethodID; ULONG MenuID; LONG stat; };
  1408. struct  MUIP_Window_SetMenuState            { ULONG MethodID; ULONG MenuID; LONG stat; };
  1409. struct  MUIP_Window_Snapshot                { ULONG MethodID; LONG flags; };
  1410. struct  MUIP_Window_ToBack                  { ULONG MethodID; };
  1411. struct  MUIP_Window_ToFront                 { ULONG MethodID; };
  1412.  
  1413. /* Attributes */
  1414.  
  1415. #define MUIA_Window_Activate                0x80428d2f /* V4  isg BOOL              */
  1416. #define MUIA_Window_ActiveObject            0x80427925 /* V4  .sg Object *          */
  1417. #define MUIA_Window_AltHeight               0x8042cce3 /* V4  i.g LONG              */
  1418. #define MUIA_Window_AltLeftEdge             0x80422d65 /* V4  i.g LONG              */
  1419. #define MUIA_Window_AltTopEdge              0x8042e99b /* V4  i.g LONG              */
  1420. #define MUIA_Window_AltWidth                0x804260f4 /* V4  i.g LONG              */
  1421. #define MUIA_Window_AppWindow               0x804280cf /* V5  i.. BOOL              */
  1422. #define MUIA_Window_Backdrop                0x8042c0bb /* V4  i.. BOOL              */
  1423. #define MUIA_Window_Borderless              0x80429b79 /* V4  i.. BOOL              */
  1424. #define MUIA_Window_CloseGadget             0x8042a110 /* V4  i.. BOOL              */
  1425. #define MUIA_Window_CloseRequest            0x8042e86e /* V4  ..g BOOL              */
  1426. #define MUIA_Window_DefaultObject           0x804294d7 /* V4  isg Object *          */
  1427. #define MUIA_Window_DepthGadget             0x80421923 /* V4  i.. BOOL              */
  1428. #define MUIA_Window_DragBar                 0x8042045d /* V4  i.. BOOL              */
  1429. #define MUIA_Window_FancyDrawing            0x8042bd0e /* V8  isg BOOL              */
  1430. #define MUIA_Window_Height                  0x80425846 /* V4  i.g LONG              */
  1431. #define MUIA_Window_ID                      0x804201bd /* V4  isg ULONG             */
  1432. #define MUIA_Window_InputEvent              0x804247d8 /* V4  ..g struct InputEvent * */
  1433. #define MUIA_Window_IsSubWindow             0x8042b5aa /* V4  isg BOOL              */
  1434. #define MUIA_Window_LeftEdge                0x80426c65 /* V4  i.g LONG              */
  1435. #ifdef MUI_OBSOLETE
  1436. #define MUIA_Window_Menu                    0x8042db94 /* V4  i.. struct NewMenu *  */
  1437. #endif /* MUI_OBSOLETE */
  1438. #define MUIA_Window_MenuAction              0x80427521 /* V8  isg ULONG             */
  1439. #define MUIA_Window_Menustrip               0x8042855e /* V8  i.g Object *          */
  1440. #define MUIA_Window_MouseObject             0x8042bf9b /* V10 ..g Object *          */
  1441. #define MUIA_Window_NeedsMouseObject        0x8042372a /* V10 i.. BOOL              */
  1442. #define MUIA_Window_NoMenus                 0x80429df5 /* V4  is. BOOL              */
  1443. #define MUIA_Window_Open                    0x80428aa0 /* V4  .sg BOOL              */
  1444. #define MUIA_Window_PublicScreen            0x804278e4 /* V6  isg STRPTR            */
  1445. #define MUIA_Window_RefWindow               0x804201f4 /* V4  is. Object *          */
  1446. #define MUIA_Window_RootObject              0x8042cba5 /* V4  isg Object *          */
  1447. #define MUIA_Window_Screen                  0x8042df4f /* V4  isg struct Screen *   */
  1448. #define MUIA_Window_ScreenTitle             0x804234b0 /* V5  isg STRPTR            */
  1449. #define MUIA_Window_SizeGadget              0x8042e33d /* V4  i.. BOOL              */
  1450. #define MUIA_Window_SizeRight               0x80424780 /* V4  i.. BOOL              */
  1451. #define MUIA_Window_Sleep                   0x8042e7db /* V4  .sg BOOL              */
  1452. #define MUIA_Window_Title                   0x8042ad3d /* V4  isg STRPTR            */
  1453. #define MUIA_Window_TopEdge                 0x80427c66 /* V4  i.g LONG              */
  1454. #define MUIA_Window_UseBottomBorderScroller 0x80424e79 /* V13 isg BOOL              */
  1455. #define MUIA_Window_UseLeftBorderScroller   0x8042433e /* V13 isg BOOL              */
  1456. #define MUIA_Window_UseRightBorderScroller  0x8042c05e /* V13 isg BOOL              */
  1457. #define MUIA_Window_Width                   0x8042dcae /* V4  i.g LONG              */
  1458. #define MUIA_Window_Window                  0x80426a42 /* V4  ..g struct Window *   */
  1459.  
  1460. #define MUIV_Window_ActiveObject_None 0
  1461. #define MUIV_Window_ActiveObject_Next -1
  1462. #define MUIV_Window_ActiveObject_Prev -2
  1463. #define MUIV_Window_AltHeight_MinMax(p) (0-(p))
  1464. #define MUIV_Window_AltHeight_Visible(p) (-100-(p))
  1465. #define MUIV_Window_AltHeight_Screen(p) (-200-(p))
  1466. #define MUIV_Window_AltHeight_Scaled -1000
  1467. #define MUIV_Window_AltLeftEdge_Centered -1
  1468. #define MUIV_Window_AltLeftEdge_Moused -2
  1469. #define MUIV_Window_AltLeftEdge_NoChange -1000
  1470. #define MUIV_Window_AltTopEdge_Centered -1
  1471. #define MUIV_Window_AltTopEdge_Moused -2
  1472. #define MUIV_Window_AltTopEdge_Delta(p) (-3-(p))
  1473. #define MUIV_Window_AltTopEdge_NoChange -1000
  1474. #define MUIV_Window_AltWidth_MinMax(p) (0-(p))
  1475. #define MUIV_Window_AltWidth_Visible(p) (-100-(p))
  1476. #define MUIV_Window_AltWidth_Screen(p) (-200-(p))
  1477. #define MUIV_Window_AltWidth_Scaled -1000
  1478. #define MUIV_Window_Height_MinMax(p) (0-(p))
  1479. #define MUIV_Window_Height_Visible(p) (-100-(p))
  1480. #define MUIV_Window_Height_Screen(p) (-200-(p))
  1481. #define MUIV_Window_Height_Scaled -1000
  1482. #define MUIV_Window_Height_Default -1001
  1483. #define MUIV_Window_LeftEdge_Centered -1
  1484. #define MUIV_Window_LeftEdge_Moused -2
  1485. #ifdef MUI_OBSOLETE
  1486. #define MUIV_Window_Menu_NoMenu -1
  1487. #endif /* MUI_OBSOLETE */
  1488. #define MUIV_Window_TopEdge_Centered -1
  1489. #define MUIV_Window_TopEdge_Moused -2
  1490. #define MUIV_Window_TopEdge_Delta(p) (-3-(p))
  1491. #define MUIV_Window_Width_MinMax(p) (0-(p))
  1492. #define MUIV_Window_Width_Visible(p) (-100-(p))
  1493. #define MUIV_Window_Width_Screen(p) (-200-(p))
  1494. #define MUIV_Window_Width_Scaled -1000
  1495. #define MUIV_Window_Width_Default -1001
  1496.  
  1497.  
  1498. /****************************************************************************/
  1499. /** Aboutmui                                                               **/
  1500. /****************************************************************************/
  1501.  
  1502. #ifdef _DCC
  1503. extern char MUIC_Aboutmui[];
  1504. #else
  1505. #define MUIC_Aboutmui "Aboutmui.mui"
  1506. #endif
  1507.  
  1508. /* Methods */
  1509.  
  1510.  
  1511. /* Attributes */
  1512.  
  1513. #define MUIA_Aboutmui_Application           0x80422523 /* V11 i.. Object *          */
  1514.  
  1515.  
  1516.  
  1517. /****************************************************************************/
  1518. /** Area                                                                   **/
  1519. /****************************************************************************/
  1520.  
  1521. #ifdef _DCC
  1522. extern char MUIC_Area[];
  1523. #else
  1524. #define MUIC_Area "Area.mui"
  1525. #endif
  1526.  
  1527. /* Methods */
  1528.  
  1529. #define MUIM_AskMinMax                      0x80423874 /* Custom Class */ /* V4  */
  1530. #define MUIM_Cleanup                        0x8042d985 /* Custom Class */ /* V4  */
  1531. #define MUIM_ContextMenuBuild               0x80429d2e /* V11 */
  1532. #define MUIM_ContextMenuChoice              0x80420f0e /* V11 */
  1533. #define MUIM_CreateBubble                   0x80421c41 /* V18 */
  1534. #define MUIM_CreateShortHelp                0x80428e93 /* V11 */
  1535. #define MUIM_DeleteBubble                   0x804211af /* V18 */
  1536. #define MUIM_DeleteShortHelp                0x8042d35a /* V11 */
  1537. #define MUIM_DragBegin                      0x8042c03a /* V11 */
  1538. #define MUIM_DragDrop                       0x8042c555 /* V11 */
  1539. #define MUIM_DragFinish                     0x804251f0 /* V11 */
  1540. #define MUIM_DragQuery                      0x80420261 /* V11 */
  1541. #define MUIM_DragReport                     0x8042edad /* V11 */
  1542. #define MUIM_Draw                           0x80426f3f /* Custom Class */ /* V4  */
  1543. #define MUIM_DrawBackground                 0x804238ca /* V11 */
  1544. #define MUIM_HandleEvent                    0x80426d66 /* Custom Class */ /* V16 */
  1545. #define MUIM_HandleInput                    0x80422a1a /* Custom Class */ /* V4  */
  1546. #define MUIM_Hide                           0x8042f20f /* Custom Class */ /* V4  */
  1547. #define MUIM_Setup                          0x80428354 /* Custom Class */ /* V4  */
  1548. #define MUIM_Show                           0x8042cc84 /* Custom Class */ /* V4  */
  1549. struct  MUIP_AskMinMax                      { ULONG MethodID; struct MUI_MinMax *MinMaxInfo; }; /* Custom Class */
  1550. struct  MUIP_Cleanup                        { ULONG MethodID; }; /* Custom Class */
  1551. struct  MUIP_ContextMenuBuild               { ULONG MethodID; LONG mx; LONG my; };
  1552. struct  MUIP_ContextMenuChoice              { ULONG MethodID; Object *item; };
  1553. struct  MUIP_CreateBubble                   { ULONG MethodID; LONG x; LONG y; char *txt; ULONG flags; };
  1554. struct  MUIP_CreateShortHelp                { ULONG MethodID; LONG mx; LONG my; };
  1555. struct  MUIP_DeleteBubble                   { ULONG MethodID; APTR bubble; };
  1556. struct  MUIP_DeleteShortHelp                { ULONG MethodID; STRPTR help; };
  1557. struct  MUIP_DragBegin                      { ULONG MethodID; Object *obj; };
  1558. struct  MUIP_DragDrop                       { ULONG MethodID; Object *obj; LONG x; LONG y; };
  1559. struct  MUIP_DragFinish                     { ULONG MethodID; Object *obj; };
  1560. struct  MUIP_DragQuery                      { ULONG MethodID; Object *obj; };
  1561. struct  MUIP_DragReport                     { ULONG MethodID; Object *obj; LONG x; LONG y; LONG update; };
  1562. struct  MUIP_Draw                           { ULONG MethodID; ULONG flags; }; /* Custom Class */
  1563. struct  MUIP_DrawBackground                 { ULONG MethodID; LONG left; LONG top; LONG width; LONG height; LONG xoffset; LONG yoffset; LONG flags; };
  1564. struct  MUIP_HandleEvent                    { ULONG MethodID; struct IntuiMessage *imsg; LONG muikey; }; /* Custom Class */
  1565. struct  MUIP_HandleInput                    { ULONG MethodID; struct IntuiMessage *imsg; LONG muikey; }; /* Custom Class */
  1566. struct  MUIP_Hide                           { ULONG MethodID; }; /* Custom Class */
  1567. struct  MUIP_Setup                          { ULONG MethodID; struct MUI_RenderInfo *RenderInfo; }; /* Custom Class */
  1568. struct  MUIP_Show                           { ULONG MethodID; }; /* Custom Class */
  1569.  
  1570. /* Attributes */
  1571.  
  1572. #define MUIA_Background                     0x8042545b /* V4  is. LONG              */
  1573. #define MUIA_BottomEdge                     0x8042e552 /* V4  ..g LONG              */
  1574. #define MUIA_ContextMenu                    0x8042b704 /* V11 isg Object *          */
  1575. #define MUIA_ContextMenuTrigger             0x8042a2c1 /* V11 ..g Object *          */
  1576. #define MUIA_ControlChar                    0x8042120b /* V4  isg char              */
  1577. #define MUIA_CycleChain                     0x80421ce7 /* V11 isg LONG              */
  1578. #define MUIA_Disabled                       0x80423661 /* V4  isg BOOL              */
  1579. #define MUIA_Draggable                      0x80420b6e /* V11 isg BOOL              */
  1580. #define MUIA_Dropable                       0x8042fbce /* V11 isg BOOL              */
  1581. #ifdef MUI_OBSOLETE
  1582. #define MUIA_ExportID                       0x8042d76e /* V4  isg ULONG             */
  1583. #endif /* MUI_OBSOLETE */
  1584. #define MUIA_FillArea                       0x804294a3 /* V4  is. BOOL              */
  1585. #define MUIA_FixHeight                      0x8042a92b /* V4  i.. LONG              */
  1586. #define MUIA_FixHeightTxt                   0x804276f2 /* V4  i.. STRPTR            */
  1587. #define MUIA_FixWidth                       0x8042a3f1 /* V4  i.. LONG              */
  1588. #define MUIA_FixWidthTxt                    0x8042d044 /* V4  i.. STRPTR            */
  1589. #define MUIA_Font                           0x8042be50 /* V4  i.g struct TextFont * */
  1590. #define MUIA_Frame                          0x8042ac64 /* V4  i.. LONG              */
  1591. #define MUIA_FramePhantomHoriz              0x8042ed76 /* V4  i.. BOOL              */
  1592. #define MUIA_FrameTitle                     0x8042d1c7 /* V4  i.. STRPTR            */
  1593. #define MUIA_Height                         0x80423237 /* V4  ..g LONG              */
  1594. #define MUIA_HorizDisappear                 0x80429615 /* V11 isg LONG              */
  1595. #define MUIA_HorizWeight                    0x80426db9 /* V4  isg WORD              */
  1596. #define MUIA_InnerBottom                    0x8042f2c0 /* V4  i.g LONG              */
  1597. #define MUIA_InnerLeft                      0x804228f8 /* V4  i.g LONG              */
  1598. #define MUIA_InnerRight                     0x804297ff /* V4  i.g LONG              */
  1599. #define MUIA_InnerTop                       0x80421eb6 /* V4  i.g LONG              */
  1600. #define MUIA_InputMode                      0x8042fb04 /* V4  i.. LONG              */
  1601. #define MUIA_LeftEdge                       0x8042bec6 /* V4  ..g LONG              */
  1602. #define MUIA_MaxHeight                      0x804293e4 /* V11 i.. LONG              */
  1603. #define MUIA_MaxWidth                       0x8042f112 /* V11 i.. LONG              */
  1604. #define MUIA_Pressed                        0x80423535 /* V4  ..g BOOL              */
  1605. #define MUIA_RightEdge                      0x8042ba82 /* V4  ..g LONG              */
  1606. #define MUIA_Selected                       0x8042654b /* V4  isg BOOL              */
  1607. #define MUIA_ShortHelp                      0x80428fe3 /* V11 isg STRPTR            */
  1608. #define MUIA_ShowMe                         0x80429ba8 /* V4  isg BOOL              */
  1609. #define MUIA_ShowSelState                   0x8042caac /* V4  i.. BOOL              */
  1610. #define MUIA_Timer                          0x80426435 /* V4  ..g LONG              */
  1611. #define MUIA_TopEdge                        0x8042509b /* V4  ..g LONG              */
  1612. #define MUIA_VertDisappear                  0x8042d12f /* V11 isg LONG              */
  1613. #define MUIA_VertWeight                     0x804298d0 /* V4  isg WORD              */
  1614. #define MUIA_Weight                         0x80421d1f /* V4  i.. WORD              */
  1615. #define MUIA_Width                          0x8042b59c /* V4  ..g LONG              */
  1616. #define MUIA_Window                         0x80421591 /* V4  ..g struct Window *   */
  1617. #define MUIA_WindowObject                   0x8042669e /* V4  ..g Object *          */
  1618.  
  1619. #define MUIV_Font_Inherit 0
  1620. #define MUIV_Font_Normal -1
  1621. #define MUIV_Font_List -2
  1622. #define MUIV_Font_Tiny -3
  1623. #define MUIV_Font_Fixed -4
  1624. #define MUIV_Font_Title -5
  1625. #define MUIV_Font_Big -6
  1626. #define MUIV_Font_Button -7
  1627. #define MUIV_Frame_None 0
  1628. #define MUIV_Frame_Button 1
  1629. #define MUIV_Frame_ImageButton 2
  1630. #define MUIV_Frame_Text 3
  1631. #define MUIV_Frame_String 4
  1632. #define MUIV_Frame_ReadList 5
  1633. #define MUIV_Frame_InputList 6
  1634. #define MUIV_Frame_Prop 7
  1635. #define MUIV_Frame_Gauge 8
  1636. #define MUIV_Frame_Group 9
  1637. #define MUIV_Frame_PopUp 10
  1638. #define MUIV_Frame_Virtual 11
  1639. #define MUIV_Frame_Slider 12
  1640. #define MUIV_Frame_Count 13
  1641. #define MUIV_InputMode_None 0
  1642. #define MUIV_InputMode_RelVerify 1
  1643. #define MUIV_InputMode_Immediate 2
  1644. #define MUIV_InputMode_Toggle 3
  1645.  
  1646.  
  1647. /****************************************************************************/
  1648. /** Rectangle                                                              **/
  1649. /****************************************************************************/
  1650.  
  1651. #ifdef _DCC
  1652. extern char MUIC_Rectangle[];
  1653. #else
  1654. #define MUIC_Rectangle "Rectangle.mui"
  1655. #endif
  1656.  
  1657. /* Attributes */
  1658.  
  1659. #define MUIA_Rectangle_BarTitle             0x80426689 /* V11 i.g STRPTR            */
  1660. #define MUIA_Rectangle_HBar                 0x8042c943 /* V7  i.g BOOL              */
  1661. #define MUIA_Rectangle_VBar                 0x80422204 /* V7  i.g BOOL              */
  1662.  
  1663.  
  1664.  
  1665. /****************************************************************************/
  1666. /** Balance                                                                **/
  1667. /****************************************************************************/
  1668.  
  1669. #ifdef _DCC
  1670. extern char MUIC_Balance[];
  1671. #else
  1672. #define MUIC_Balance "Balance.mui"
  1673. #endif
  1674.  
  1675.  
  1676. /****************************************************************************/
  1677. /** Image                                                                  **/
  1678. /****************************************************************************/
  1679.  
  1680. #ifdef _DCC
  1681. extern char MUIC_Image[];
  1682. #else
  1683. #define MUIC_Image "Image.mui"
  1684. #endif
  1685.  
  1686. /* Attributes */
  1687.  
  1688. #define MUIA_Image_FontMatch                0x8042815d /* V4  i.. BOOL              */
  1689. #define MUIA_Image_FontMatchHeight          0x80429f26 /* V4  i.. BOOL              */
  1690. #define MUIA_Image_FontMatchWidth           0x804239bf /* V4  i.. BOOL              */
  1691. #define MUIA_Image_FreeHoriz                0x8042da84 /* V4  i.. BOOL              */
  1692. #define MUIA_Image_FreeVert                 0x8042ea28 /* V4  i.. BOOL              */
  1693. #define MUIA_Image_OldImage                 0x80424f3d /* V4  i.. struct Image *    */
  1694. #define MUIA_Image_Spec                     0x804233d5 /* V4  i.. char *            */
  1695. #define MUIA_Image_State                    0x8042a3ad /* V4  is. LONG              */
  1696.  
  1697.  
  1698.  
  1699. /****************************************************************************/
  1700. /** Bitmap                                                                 **/
  1701. /****************************************************************************/
  1702.  
  1703. #ifdef _DCC
  1704. extern char MUIC_Bitmap[];
  1705. #else
  1706. #define MUIC_Bitmap "Bitmap.mui"
  1707. #endif
  1708.  
  1709. /* Attributes */
  1710.  
  1711. #define MUIA_Bitmap_Bitmap                  0x804279bd /* V8  isg struct BitMap *   */
  1712. #define MUIA_Bitmap_Height                  0x80421560 /* V8  isg LONG              */
  1713. #define MUIA_Bitmap_MappingTable            0x8042e23d /* V8  isg UBYTE *           */
  1714. #define MUIA_Bitmap_Precision               0x80420c74 /* V11 isg LONG              */
  1715. #define MUIA_Bitmap_RemappedBitmap          0x80423a47 /* V11 ..g struct BitMap *   */
  1716. #define MUIA_Bitmap_SourceColors            0x80425360 /* V8  isg ULONG *           */
  1717. #define MUIA_Bitmap_Transparent             0x80422805 /* V8  isg LONG              */
  1718. #define MUIA_Bitmap_UseFriend               0x804239d8 /* V11 i.. BOOL              */
  1719. #define MUIA_Bitmap_Width                   0x8042eb3a /* V8  isg LONG              */
  1720.  
  1721.  
  1722.  
  1723. /****************************************************************************/
  1724. /** Bodychunk                                                              **/
  1725. /****************************************************************************/
  1726.  
  1727. #ifdef _DCC
  1728. extern char MUIC_Bodychunk[];
  1729. #else
  1730. #define MUIC_Bodychunk "Bodychunk.mui"
  1731. #endif
  1732.  
  1733. /* Attributes */
  1734.  
  1735. #define MUIA_Bodychunk_Body                 0x8042ca67 /* V8  isg UBYTE *           */
  1736. #define MUIA_Bodychunk_Compression          0x8042de5f /* V8  isg UBYTE             */
  1737. #define MUIA_Bodychunk_Depth                0x8042c392 /* V8  isg LONG              */
  1738. #define MUIA_Bodychunk_Masking              0x80423b0e /* V8  isg UBYTE             */
  1739.  
  1740.  
  1741.  
  1742. /****************************************************************************/
  1743. /** Text                                                                   **/
  1744. /****************************************************************************/
  1745.  
  1746. #ifdef _DCC
  1747. extern char MUIC_Text[];
  1748. #else
  1749. #define MUIC_Text "Text.mui"
  1750. #endif
  1751.  
  1752. /* Attributes */
  1753.  
  1754. #define MUIA_Text_Contents                  0x8042f8dc /* V4  isg STRPTR            */
  1755. #define MUIA_Text_HiChar                    0x804218ff /* V4  i.. char              */
  1756. #define MUIA_Text_PreParse                  0x8042566d /* V4  isg STRPTR            */
  1757. #define MUIA_Text_SetMax                    0x80424d0a /* V4  i.. BOOL              */
  1758. #define MUIA_Text_SetMin                    0x80424e10 /* V4  i.. BOOL              */
  1759. #define MUIA_Text_SetVMax                   0x80420d8b /* V11 i.. BOOL              */
  1760.  
  1761.  
  1762.  
  1763. /****************************************************************************/
  1764. /** Gadget                                                                 **/
  1765. /****************************************************************************/
  1766.  
  1767. #ifdef _DCC
  1768. extern char MUIC_Gadget[];
  1769. #else
  1770. #define MUIC_Gadget "Gadget.mui"
  1771. #endif
  1772.  
  1773. /* Attributes */
  1774.  
  1775. #define MUIA_Gadget_Gadget                  0x8042ec1a /* V11 ..g struct Gadget *   */
  1776.  
  1777.  
  1778.  
  1779. /****************************************************************************/
  1780. /** String                                                                 **/
  1781. /****************************************************************************/
  1782.  
  1783. #ifdef _DCC
  1784. extern char MUIC_String[];
  1785. #else
  1786. #define MUIC_String "String.mui"
  1787. #endif
  1788.  
  1789. /* Methods */
  1790.  
  1791.  
  1792. /* Attributes */
  1793.  
  1794. #define MUIA_String_Accept                  0x8042e3e1 /* V4  isg STRPTR            */
  1795. #define MUIA_String_Acknowledge             0x8042026c /* V4  ..g STRPTR            */
  1796. #define MUIA_String_AdvanceOnCR             0x804226de /* V11 isg BOOL              */
  1797. #define MUIA_String_AttachedList            0x80420fd2 /* V4  isg Object *          */
  1798. #define MUIA_String_BufferPos               0x80428b6c /* V4  .sg LONG              */
  1799. #define MUIA_String_Contents                0x80428ffd /* V4  isg STRPTR            */
  1800. #define MUIA_String_DisplayPos              0x8042ccbf /* V4  .sg LONG              */
  1801. #define MUIA_String_EditHook                0x80424c33 /* V7  isg struct Hook *     */
  1802. #define MUIA_String_Format                  0x80427484 /* V4  i.g LONG              */
  1803. #define MUIA_String_Integer                 0x80426e8a /* V4  isg ULONG             */
  1804. #define MUIA_String_LonelyEditHook          0x80421569 /* V11 isg BOOL              */
  1805. #define MUIA_String_MaxLen                  0x80424984 /* V4  i.g LONG              */
  1806. #define MUIA_String_Reject                  0x8042179c /* V4  isg STRPTR            */
  1807. #define MUIA_String_Secret                  0x80428769 /* V4  i.g BOOL              */
  1808.  
  1809. #define MUIV_String_Format_Left 0
  1810. #define MUIV_String_Format_Center 1
  1811. #define MUIV_String_Format_Right 2
  1812.  
  1813.  
  1814. /****************************************************************************/
  1815. /** Boopsi                                                                 **/
  1816. /****************************************************************************/
  1817.  
  1818. #ifdef _DCC
  1819. extern char MUIC_Boopsi[];
  1820. #else
  1821. #define MUIC_Boopsi "Boopsi.mui"
  1822. #endif
  1823.  
  1824. /* Attributes */
  1825.  
  1826. #define MUIA_Boopsi_Class                   0x80426999 /* V4  isg struct IClass *   */
  1827. #define MUIA_Boopsi_ClassID                 0x8042bfa3 /* V4  isg char *            */
  1828. #define MUIA_Boopsi_MaxHeight               0x8042757f /* V4  isg ULONG             */
  1829. #define MUIA_Boopsi_MaxWidth                0x8042bcb1 /* V4  isg ULONG             */
  1830. #define MUIA_Boopsi_MinHeight               0x80422c93 /* V4  isg ULONG             */
  1831. #define MUIA_Boopsi_MinWidth                0x80428fb2 /* V4  isg ULONG             */
  1832. #define MUIA_Boopsi_Object                  0x80420178 /* V4  ..g Object *          */
  1833. #define MUIA_Boopsi_Remember                0x8042f4bd /* V4  i.. ULONG             */
  1834. #define MUIA_Boopsi_Smart                   0x8042b8d7 /* V9  i.. BOOL              */
  1835. #define MUIA_Boopsi_TagDrawInfo             0x8042bae7 /* V4  isg ULONG             */
  1836. #define MUIA_Boopsi_TagScreen               0x8042bc71 /* V4  isg ULONG             */
  1837. #define MUIA_Boopsi_TagWindow               0x8042e11d /* V4  isg ULONG             */
  1838.  
  1839.  
  1840.  
  1841. /****************************************************************************/
  1842. /** Prop                                                                   **/
  1843. /****************************************************************************/
  1844.  
  1845. #ifdef _DCC
  1846. extern char MUIC_Prop[];
  1847. #else
  1848. #define MUIC_Prop "Prop.mui"
  1849. #endif
  1850.  
  1851. /* Methods */
  1852.  
  1853. #define MUIM_Prop_Decrease                  0x80420dd1 /* V16 */
  1854. #define MUIM_Prop_Increase                  0x8042cac0 /* V16 */
  1855. struct  MUIP_Prop_Decrease                  { ULONG MethodID; LONG amount; };
  1856. struct  MUIP_Prop_Increase                  { ULONG MethodID; LONG amount; };
  1857.  
  1858. /* Attributes */
  1859.  
  1860. #define MUIA_Prop_Entries                   0x8042fbdb /* V4  isg LONG              */
  1861. #define MUIA_Prop_First                     0x8042d4b2 /* V4  isg LONG              */
  1862. #define MUIA_Prop_Horiz                     0x8042f4f3 /* V4  i.g BOOL              */
  1863. #define MUIA_Prop_Slider                    0x80429c3a /* V4  isg BOOL              */
  1864. #define MUIA_Prop_UseWinBorder              0x8042deee /* V13 i.. LONG              */
  1865. #define MUIA_Prop_Visible                   0x8042fea6 /* V4  isg LONG              */
  1866.  
  1867. #define MUIV_Prop_UseWinBorder_None 0
  1868. #define MUIV_Prop_UseWinBorder_Left 1
  1869. #define MUIV_Prop_UseWinBorder_Right 2
  1870. #define MUIV_Prop_UseWinBorder_Bottom 3
  1871.  
  1872.  
  1873. /****************************************************************************/
  1874. /** Gauge                                                                  **/
  1875. /****************************************************************************/
  1876.  
  1877. #ifdef _DCC
  1878. extern char MUIC_Gauge[];
  1879. #else
  1880. #define MUIC_Gauge "Gauge.mui"
  1881. #endif
  1882.  
  1883. /* Attributes */
  1884.  
  1885. #define MUIA_Gauge_Current                  0x8042f0dd /* V4  isg LONG              */
  1886. #define MUIA_Gauge_Divide                   0x8042d8df /* V4  isg BOOL              */
  1887. #define MUIA_Gauge_Horiz                    0x804232dd /* V4  i.. BOOL              */
  1888. #define MUIA_Gauge_InfoText                 0x8042bf15 /* V7  isg STRPTR            */
  1889. #define MUIA_Gauge_Max                      0x8042bcdb /* V4  isg LONG              */
  1890.  
  1891.  
  1892.  
  1893. /****************************************************************************/
  1894. /** Scale                                                                  **/
  1895. /****************************************************************************/
  1896.  
  1897. #ifdef _DCC
  1898. extern char MUIC_Scale[];
  1899. #else
  1900. #define MUIC_Scale "Scale.mui"
  1901. #endif
  1902.  
  1903. /* Attributes */
  1904.  
  1905. #define MUIA_Scale_Horiz                    0x8042919a /* V4  isg BOOL              */
  1906.  
  1907.  
  1908.  
  1909. /****************************************************************************/
  1910. /** Colorfield                                                             **/
  1911. /****************************************************************************/
  1912.  
  1913. #ifdef _DCC
  1914. extern char MUIC_Colorfield[];
  1915. #else
  1916. #define MUIC_Colorfield "Colorfield.mui"
  1917. #endif
  1918.  
  1919. /* Attributes */
  1920.  
  1921. #define MUIA_Colorfield_Blue                0x8042d3b0 /* V4  isg ULONG             */
  1922. #define MUIA_Colorfield_Green               0x80424466 /* V4  isg ULONG             */
  1923. #define MUIA_Colorfield_Pen                 0x8042713a /* V4  ..g ULONG             */
  1924. #define MUIA_Colorfield_Red                 0x804279f6 /* V4  isg ULONG             */
  1925. #define MUIA_Colorfield_RGB                 0x8042677a /* V4  isg ULONG *           */
  1926.  
  1927.  
  1928.  
  1929. /****************************************************************************/
  1930. /** List                                                                   **/
  1931. /****************************************************************************/
  1932.  
  1933. #ifdef _DCC
  1934. extern char MUIC_List[];
  1935. #else
  1936. #define MUIC_List "List.mui"
  1937. #endif
  1938.  
  1939. /* Methods */
  1940.  
  1941. #define MUIM_List_Clear                     0x8042ad89 /* V4  */
  1942. #define MUIM_List_CreateImage               0x80429804 /* V11 */
  1943. #define MUIM_List_DeleteImage               0x80420f58 /* V11 */
  1944. #define MUIM_List_Exchange                  0x8042468c /* V4  */
  1945. #define MUIM_List_GetEntry                  0x804280ec /* V4  */
  1946. #define MUIM_List_Insert                    0x80426c87 /* V4  */
  1947. #define MUIM_List_InsertSingle              0x804254d5 /* V7  */
  1948. #define MUIM_List_Jump                      0x8042baab /* V4  */
  1949. #define MUIM_List_Move                      0x804253c2 /* V9  */
  1950. #define MUIM_List_NextSelected              0x80425f17 /* V6  */
  1951. #define MUIM_List_Redraw                    0x80427993 /* V4  */
  1952. #define MUIM_List_Remove                    0x8042647e /* V4  */
  1953. #define MUIM_List_Select                    0x804252d8 /* V4  */
  1954. #define MUIM_List_Sort                      0x80422275 /* V4  */
  1955. #define MUIM_List_TestPos                   0x80425f48 /* V11 */
  1956. struct  MUIP_List_Clear                     { ULONG MethodID; };
  1957. struct  MUIP_List_CreateImage               { ULONG MethodID; Object *obj; ULONG flags; };
  1958. struct  MUIP_List_DeleteImage               { ULONG MethodID; APTR listimg; };
  1959. struct  MUIP_List_Exchange                  { ULONG MethodID; LONG pos1; LONG pos2; };
  1960. struct  MUIP_List_GetEntry                  { ULONG MethodID; LONG pos; APTR *entry; };
  1961. struct  MUIP_List_Insert                    { ULONG MethodID; APTR *entries; LONG count; LONG pos; };
  1962. struct  MUIP_List_InsertSingle              { ULONG MethodID; APTR entry; LONG pos; };
  1963. struct  MUIP_List_Jump                      { ULONG MethodID; LONG pos; };
  1964. struct  MUIP_List_Move                      { ULONG MethodID; LONG from; LONG to; };
  1965. struct  MUIP_List_NextSelected              { ULONG MethodID; LONG *pos; };
  1966. struct  MUIP_List_Redraw                    { ULONG MethodID; LONG pos; };
  1967. struct  MUIP_List_Remove                    { ULONG MethodID; LONG pos; };
  1968. struct  MUIP_List_Select                    { ULONG MethodID; LONG pos; LONG seltype; LONG *state; };
  1969. struct  MUIP_List_Sort                      { ULONG MethodID; };
  1970. struct  MUIP_List_TestPos                   { ULONG MethodID; LONG x; LONG y; struct MUI_List_TestPos_Result *res; };
  1971.  
  1972. /* Attributes */
  1973.  
  1974. #define MUIA_List_Active                    0x8042391c /* V4  isg LONG              */
  1975. #define MUIA_List_AdjustHeight              0x8042850d /* V4  i.. BOOL              */
  1976. #define MUIA_List_AdjustWidth               0x8042354a /* V4  i.. BOOL              */
  1977. #define MUIA_List_AutoVisible               0x8042a445 /* V11 isg BOOL              */
  1978. #define MUIA_List_CompareHook               0x80425c14 /* V4  is. struct Hook *     */
  1979. #define MUIA_List_ConstructHook             0x8042894f /* V4  is. struct Hook *     */
  1980. #define MUIA_List_DestructHook              0x804297ce /* V4  is. struct Hook *     */
  1981. #define MUIA_List_DisplayHook               0x8042b4d5 /* V4  is. struct Hook *     */
  1982. #define MUIA_List_DragSortable              0x80426099 /* V11 isg BOOL              */
  1983. #define MUIA_List_DropMark                  0x8042aba6 /* V11 ..g LONG              */
  1984. #define MUIA_List_Entries                   0x80421654 /* V4  ..g LONG              */
  1985. #define MUIA_List_First                     0x804238d4 /* V4  ..g LONG              */
  1986. #define MUIA_List_Format                    0x80423c0a /* V4  isg STRPTR            */
  1987. #define MUIA_List_InsertPosition            0x8042d0cd /* V9  ..g LONG              */
  1988. #define MUIA_List_MinLineHeight             0x8042d1c3 /* V4  i.. LONG              */
  1989. #define MUIA_List_MultiTestHook             0x8042c2c6 /* V4  is. struct Hook *     */
  1990. #define MUIA_List_Pool                      0x80423431 /* V13 i.. APTR              */
  1991. #define MUIA_List_PoolPuddleSize            0x8042a4eb /* V13 i.. ULONG             */
  1992. #define MUIA_List_PoolThreshSize            0x8042c48c /* V13 i.. ULONG             */
  1993. #define MUIA_List_Quiet                     0x8042d8c7 /* V4  .s. BOOL              */
  1994. #define MUIA_List_ShowDropMarks             0x8042c6f3 /* V11 isg BOOL              */
  1995. #define MUIA_List_SourceArray               0x8042c0a0 /* V4  i.. APTR              */
  1996. #define MUIA_List_Title                     0x80423e66 /* V6  isg char *            */
  1997. #define MUIA_List_Visible                   0x8042191f /* V4  ..g LONG              */
  1998.  
  1999. #define MUIV_List_Active_Off -1
  2000. #define MUIV_List_Active_Top -2
  2001. #define MUIV_List_Active_Bottom -3
  2002. #define MUIV_List_Active_Up -4
  2003. #define MUIV_List_Active_Down -5
  2004. #define MUIV_List_Active_PageUp -6
  2005. #define MUIV_List_Active_PageDown -7
  2006. #define MUIV_List_ConstructHook_String -1
  2007. #define MUIV_List_CopyHook_String -1
  2008. #define MUIV_List_CursorType_None 0
  2009. #define MUIV_List_CursorType_Bar 1
  2010. #define MUIV_List_CursorType_Rect 2
  2011. #define MUIV_List_DestructHook_String -1
  2012.  
  2013.  
  2014. /****************************************************************************/
  2015. /** Floattext                                                              **/
  2016. /****************************************************************************/
  2017.  
  2018. #ifdef _DCC
  2019. extern char MUIC_Floattext[];
  2020. #else
  2021. #define MUIC_Floattext "Floattext.mui"
  2022. #endif
  2023.  
  2024. /* Attributes */
  2025.  
  2026. #define MUIA_Floattext_Justify              0x8042dc03 /* V4  isg BOOL              */
  2027. #define MUIA_Floattext_SkipChars            0x80425c7d /* V4  is. STRPTR            */
  2028. #define MUIA_Floattext_TabSize              0x80427d17 /* V4  is. LONG              */
  2029. #define MUIA_Floattext_Text                 0x8042d16a /* V4  isg STRPTR            */
  2030.  
  2031.  
  2032.  
  2033. /****************************************************************************/
  2034. /** Volumelist                                                             **/
  2035. /****************************************************************************/
  2036.  
  2037. #ifdef _DCC
  2038. extern char MUIC_Volumelist[];
  2039. #else
  2040. #define MUIC_Volumelist "Volumelist.mui"
  2041. #endif
  2042.  
  2043.  
  2044. /****************************************************************************/
  2045. /** Scrmodelist                                                            **/
  2046. /****************************************************************************/
  2047.  
  2048. #ifdef _DCC
  2049. extern char MUIC_Scrmodelist[];
  2050. #else
  2051. #define MUIC_Scrmodelist "Scrmodelist.mui"
  2052. #endif
  2053.  
  2054. /* Attributes */
  2055.  
  2056.  
  2057.  
  2058.  
  2059. /****************************************************************************/
  2060. /** Dirlist                                                                **/
  2061. /****************************************************************************/
  2062.  
  2063. #ifdef _DCC
  2064. extern char MUIC_Dirlist[];
  2065. #else
  2066. #define MUIC_Dirlist "Dirlist.mui"
  2067. #endif
  2068.  
  2069. /* Methods */
  2070.  
  2071. #define MUIM_Dirlist_ReRead                 0x80422d71 /* V4  */
  2072. struct  MUIP_Dirlist_ReRead                 { ULONG MethodID; };
  2073.  
  2074. /* Attributes */
  2075.  
  2076. #define MUIA_Dirlist_AcceptPattern          0x8042760a /* V4  is. STRPTR            */
  2077. #define MUIA_Dirlist_Directory              0x8042ea41 /* V4  isg STRPTR            */
  2078. #define MUIA_Dirlist_DrawersOnly            0x8042b379 /* V4  is. BOOL              */
  2079. #define MUIA_Dirlist_FilesOnly              0x8042896a /* V4  is. BOOL              */
  2080. #define MUIA_Dirlist_FilterDrawers          0x80424ad2 /* V4  is. BOOL              */
  2081. #define MUIA_Dirlist_FilterHook             0x8042ae19 /* V4  is. struct Hook *     */
  2082. #define MUIA_Dirlist_MultiSelDirs           0x80428653 /* V6  is. BOOL              */
  2083. #define MUIA_Dirlist_NumBytes               0x80429e26 /* V4  ..g LONG              */
  2084. #define MUIA_Dirlist_NumDrawers             0x80429cb8 /* V4  ..g LONG              */
  2085. #define MUIA_Dirlist_NumFiles               0x8042a6f0 /* V4  ..g LONG              */
  2086. #define MUIA_Dirlist_Path                   0x80426176 /* V4  ..g STRPTR            */
  2087. #define MUIA_Dirlist_RejectIcons            0x80424808 /* V4  is. BOOL              */
  2088. #define MUIA_Dirlist_RejectPattern          0x804259c7 /* V4  is. STRPTR            */
  2089. #define MUIA_Dirlist_SortDirs               0x8042bbb9 /* V4  is. LONG              */
  2090. #define MUIA_Dirlist_SortHighLow            0x80421896 /* V4  is. BOOL              */
  2091. #define MUIA_Dirlist_SortType               0x804228bc /* V4  is. LONG              */
  2092. #define MUIA_Dirlist_Status                 0x804240de /* V4  ..g LONG              */
  2093.  
  2094. #define MUIV_Dirlist_SortDirs_First 0
  2095. #define MUIV_Dirlist_SortDirs_Last 1
  2096. #define MUIV_Dirlist_SortDirs_Mix 2
  2097. #define MUIV_Dirlist_SortType_Name 0
  2098. #define MUIV_Dirlist_SortType_Date 1
  2099. #define MUIV_Dirlist_SortType_Size 2
  2100. #define MUIV_Dirlist_Status_Invalid 0
  2101. #define MUIV_Dirlist_Status_Reading 1
  2102. #define MUIV_Dirlist_Status_Valid 2
  2103.  
  2104.  
  2105. /****************************************************************************/
  2106. /** Numeric                                                                **/
  2107. /****************************************************************************/
  2108.  
  2109. #ifdef _DCC
  2110. extern char MUIC_Numeric[];
  2111. #else
  2112. #define MUIC_Numeric "Numeric.mui"
  2113. #endif
  2114.  
  2115. /* Methods */
  2116.  
  2117. #define MUIM_Numeric_Decrease               0x804243a7 /* V11 */
  2118. #define MUIM_Numeric_Increase               0x80426ecd /* V11 */
  2119. #define MUIM_Numeric_ScaleToValue           0x8042032c /* V11 */
  2120. #define MUIM_Numeric_SetDefault             0x8042ab0a /* V11 */
  2121. #define MUIM_Numeric_Stringify              0x80424891 /* V11 */
  2122. #define MUIM_Numeric_ValueToScale           0x80423e4f /* V11 */
  2123. struct  MUIP_Numeric_Decrease               { ULONG MethodID; LONG amount; };
  2124. struct  MUIP_Numeric_Increase               { ULONG MethodID; LONG amount; };
  2125. struct  MUIP_Numeric_ScaleToValue           { ULONG MethodID; LONG scalemin; LONG scalemax; LONG scale; };
  2126. struct  MUIP_Numeric_SetDefault             { ULONG MethodID; };
  2127. struct  MUIP_Numeric_Stringify              { ULONG MethodID; LONG value; };
  2128. struct  MUIP_Numeric_ValueToScale           { ULONG MethodID; LONG scalemin; LONG scalemax; };
  2129.  
  2130. /* Attributes */
  2131.  
  2132. #define MUIA_Numeric_CheckAllSizes          0x80421594 /* V11 isg BOOL              */
  2133. #define MUIA_Numeric_Default                0x804263e8 /* V11 isg LONG              */
  2134. #define MUIA_Numeric_Format                 0x804263e9 /* V11 isg STRPTR            */
  2135. #define MUIA_Numeric_Max                    0x8042d78a /* V11 isg LONG              */
  2136. #define MUIA_Numeric_Min                    0x8042e404 /* V11 isg LONG              */
  2137. #define MUIA_Numeric_Reverse                0x8042f2a0 /* V11 isg BOOL              */
  2138. #define MUIA_Numeric_RevLeftRight           0x804294a7 /* V11 isg BOOL              */
  2139. #define MUIA_Numeric_RevUpDown              0x804252dd /* V11 isg BOOL              */
  2140. #define MUIA_Numeric_Value                  0x8042ae3a /* V11 isg LONG              */
  2141.  
  2142.  
  2143.  
  2144. /****************************************************************************/
  2145. /** Knob                                                                   **/
  2146. /****************************************************************************/
  2147.  
  2148. #ifdef _DCC
  2149. extern char MUIC_Knob[];
  2150. #else
  2151. #define MUIC_Knob "Knob.mui"
  2152. #endif
  2153.  
  2154.  
  2155. /****************************************************************************/
  2156. /** Levelmeter                                                             **/
  2157. /****************************************************************************/
  2158.  
  2159. #ifdef _DCC
  2160. extern char MUIC_Levelmeter[];
  2161. #else
  2162. #define MUIC_Levelmeter "Levelmeter.mui"
  2163. #endif
  2164.  
  2165. /* Attributes */
  2166.  
  2167. #define MUIA_Levelmeter_Label               0x80420dd5 /* V11 isg STRPTR            */
  2168.  
  2169.  
  2170.  
  2171. /****************************************************************************/
  2172. /** Numericbutton                                                          **/
  2173. /****************************************************************************/
  2174.  
  2175. #ifdef _DCC
  2176. extern char MUIC_Numericbutton[];
  2177. #else
  2178. #define MUIC_Numericbutton "Numericbutton.mui"
  2179. #endif
  2180.  
  2181.  
  2182. /****************************************************************************/
  2183. /** Slider                                                                 **/
  2184. /****************************************************************************/
  2185.  
  2186. #ifdef _DCC
  2187. extern char MUIC_Slider[];
  2188. #else
  2189. #define MUIC_Slider "Slider.mui"
  2190. #endif
  2191.  
  2192. /* Attributes */
  2193.  
  2194. #define MUIA_Slider_Horiz                   0x8042fad1 /* V11 isg BOOL              */
  2195. #ifdef MUI_OBSOLETE
  2196. #define MUIA_Slider_Level                   0x8042ae3a /* V4  isg LONG              */
  2197. #endif /* MUI_OBSOLETE */
  2198. #ifdef MUI_OBSOLETE
  2199. #define MUIA_Slider_Max                     0x8042d78a /* V4  isg LONG              */
  2200. #endif /* MUI_OBSOLETE */
  2201. #ifdef MUI_OBSOLETE
  2202. #define MUIA_Slider_Min                     0x8042e404 /* V4  isg LONG              */
  2203. #endif /* MUI_OBSOLETE */
  2204. #define MUIA_Slider_Quiet                   0x80420b26 /* V6  i.. BOOL              */
  2205. #ifdef MUI_OBSOLETE
  2206. #define MUIA_Slider_Reverse                 0x8042f2a0 /* V4  isg BOOL              */
  2207. #endif /* MUI_OBSOLETE */
  2208.  
  2209.  
  2210.  
  2211. /****************************************************************************/
  2212. /** Framedisplay                                                           **/
  2213. /****************************************************************************/
  2214.  
  2215. #ifdef _DCC
  2216. extern char MUIC_Framedisplay[];
  2217. #else
  2218. #define MUIC_Framedisplay "Framedisplay.mui"
  2219. #endif
  2220.  
  2221. /* Attributes */
  2222.  
  2223.  
  2224.  
  2225.  
  2226. /****************************************************************************/
  2227. /** Popframe                                                               **/
  2228. /****************************************************************************/
  2229.  
  2230. #ifdef _DCC
  2231. extern char MUIC_Popframe[];
  2232. #else
  2233. #define MUIC_Popframe "Popframe.mui"
  2234. #endif
  2235.  
  2236.  
  2237. /****************************************************************************/
  2238. /** Imagedisplay                                                           **/
  2239. /****************************************************************************/
  2240.  
  2241. #ifdef _DCC
  2242. extern char MUIC_Imagedisplay[];
  2243. #else
  2244. #define MUIC_Imagedisplay "Imagedisplay.mui"
  2245. #endif
  2246.  
  2247. /* Attributes */
  2248.  
  2249.  
  2250.  
  2251.  
  2252. /****************************************************************************/
  2253. /** Popimage                                                               **/
  2254. /****************************************************************************/
  2255.  
  2256. #ifdef _DCC
  2257. extern char MUIC_Popimage[];
  2258. #else
  2259. #define MUIC_Popimage "Popimage.mui"
  2260. #endif
  2261.  
  2262.  
  2263. /****************************************************************************/
  2264. /** Pendisplay                                                             **/
  2265. /****************************************************************************/
  2266.  
  2267. #ifdef _DCC
  2268. extern char MUIC_Pendisplay[];
  2269. #else
  2270. #define MUIC_Pendisplay "Pendisplay.mui"
  2271. #endif
  2272.  
  2273. /* Methods */
  2274.  
  2275. #define MUIM_Pendisplay_SetColormap         0x80426c80 /* V13 */
  2276. #define MUIM_Pendisplay_SetMUIPen           0x8042039d /* V13 */
  2277. #define MUIM_Pendisplay_SetRGB              0x8042c131 /* V13 */
  2278. struct  MUIP_Pendisplay_SetColormap         { ULONG MethodID; LONG colormap; };
  2279. struct  MUIP_Pendisplay_SetMUIPen           { ULONG MethodID; LONG muipen; };
  2280. struct  MUIP_Pendisplay_SetRGB              { ULONG MethodID; ULONG red; ULONG green; ULONG blue; };
  2281.  
  2282. /* Attributes */
  2283.  
  2284. #define MUIA_Pendisplay_Pen                 0x8042a748 /* V13 ..g Object *          */
  2285. #define MUIA_Pendisplay_Reference           0x8042dc24 /* V13 isg Object *          */
  2286. #define MUIA_Pendisplay_RGBcolor            0x8042a1a9 /* V11 isg struct MUI_RGBcolor * */
  2287. #define MUIA_Pendisplay_Spec                0x8042a204 /* V11 isg struct MUI_PenSpec  * */
  2288.  
  2289.  
  2290.  
  2291. /****************************************************************************/
  2292. /** Poppen                                                                 **/
  2293. /****************************************************************************/
  2294.  
  2295. #ifdef _DCC
  2296. extern char MUIC_Poppen[];
  2297. #else
  2298. #define MUIC_Poppen "Poppen.mui"
  2299. #endif
  2300.  
  2301.  
  2302. /****************************************************************************/
  2303. /** Group                                                                  **/
  2304. /****************************************************************************/
  2305.  
  2306. #ifdef _DCC
  2307. extern char MUIC_Group[];
  2308. #else
  2309. #define MUIC_Group "Group.mui"
  2310. #endif
  2311.  
  2312. /* Methods */
  2313.  
  2314. #define MUIM_Group_ExitChange               0x8042d1cc /* V11 */
  2315. #define MUIM_Group_InitChange               0x80420887 /* V11 */
  2316. #define MUIM_Group_Sort                     0x80427417 /* V4  */
  2317. struct  MUIP_Group_ExitChange               { ULONG MethodID; };
  2318. struct  MUIP_Group_InitChange               { ULONG MethodID; };
  2319. struct  MUIP_Group_Sort                     { ULONG MethodID; Object *obj[1]; };
  2320.  
  2321. /* Attributes */
  2322.  
  2323. #define MUIA_Group_ActivePage               0x80424199 /* V5  isg LONG              */
  2324. #define MUIA_Group_Child                    0x804226e6 /* V4  i.. Object *          */
  2325. #define MUIA_Group_ChildList                0x80424748 /* V4  ..g struct List *     */
  2326. #define MUIA_Group_Columns                  0x8042f416 /* V4  is. LONG              */
  2327. #define MUIA_Group_Horiz                    0x8042536b /* V4  i.. BOOL              */
  2328. #define MUIA_Group_HorizSpacing             0x8042c651 /* V4  isg LONG              */
  2329. #define MUIA_Group_LayoutHook               0x8042c3b2 /* V11 i.. struct Hook *     */
  2330. #define MUIA_Group_PageMode                 0x80421a5f /* V5  i.. BOOL              */
  2331. #define MUIA_Group_Rows                     0x8042b68f /* V4  is. LONG              */
  2332. #define MUIA_Group_SameHeight               0x8042037e /* V4  i.. BOOL              */
  2333. #define MUIA_Group_SameSize                 0x80420860 /* V4  i.. BOOL              */
  2334. #define MUIA_Group_SameWidth                0x8042b3ec /* V4  i.. BOOL              */
  2335. #define MUIA_Group_Spacing                  0x8042866d /* V4  is. LONG              */
  2336. #define MUIA_Group_VertSpacing              0x8042e1bf /* V4  isg LONG              */
  2337.  
  2338. #define MUIV_Group_ActivePage_First 0
  2339. #define MUIV_Group_ActivePage_Last -1
  2340. #define MUIV_Group_ActivePage_Prev -2
  2341. #define MUIV_Group_ActivePage_Next -3
  2342. #define MUIV_Group_ActivePage_Advance -4
  2343.  
  2344.  
  2345. /****************************************************************************/
  2346. /** Mccprefs                                                               **/
  2347. /****************************************************************************/
  2348.  
  2349. #ifdef _DCC
  2350. extern char MUIC_Mccprefs[];
  2351. #else
  2352. #define MUIC_Mccprefs "Mccprefs.mui"
  2353. #endif
  2354.  
  2355.  
  2356. /****************************************************************************/
  2357. /** Register                                                               **/
  2358. /****************************************************************************/
  2359.  
  2360. #ifdef _DCC
  2361. extern char MUIC_Register[];
  2362. #else
  2363. #define MUIC_Register "Register.mui"
  2364. #endif
  2365.  
  2366. /* Attributes */
  2367.  
  2368. #define MUIA_Register_Frame                 0x8042349b /* V7  i.g BOOL              */
  2369. #define MUIA_Register_Titles                0x804297ec /* V7  i.g STRPTR *          */
  2370.  
  2371.  
  2372.  
  2373. /****************************************************************************/
  2374. /** Penadjust                                                              **/
  2375. /****************************************************************************/
  2376.  
  2377. #ifdef _DCC
  2378. extern char MUIC_Penadjust[];
  2379. #else
  2380. #define MUIC_Penadjust "Penadjust.mui"
  2381. #endif
  2382.  
  2383. /* Methods */
  2384.  
  2385.  
  2386. /* Attributes */
  2387.  
  2388. #define MUIA_Penadjust_PSIMode              0x80421cbb /* V11 i.. BOOL              */
  2389.  
  2390.  
  2391.  
  2392. /****************************************************************************/
  2393. /** Settingsgroup                                                          **/
  2394. /****************************************************************************/
  2395.  
  2396. #ifdef _DCC
  2397. extern char MUIC_Settingsgroup[];
  2398. #else
  2399. #define MUIC_Settingsgroup "Settingsgroup.mui"
  2400. #endif
  2401.  
  2402. /* Methods */
  2403.  
  2404. #define MUIM_Settingsgroup_ConfigToGadgets  0x80427043 /* V11 */
  2405. #define MUIM_Settingsgroup_GadgetsToConfig  0x80425242 /* V11 */
  2406. struct  MUIP_Settingsgroup_ConfigToGadgets  { ULONG MethodID; Object *configdata; };
  2407. struct  MUIP_Settingsgroup_GadgetsToConfig  { ULONG MethodID; Object *configdata; };
  2408.  
  2409. /* Attributes */
  2410.  
  2411.  
  2412.  
  2413.  
  2414. /****************************************************************************/
  2415. /** Settings                                                               **/
  2416. /****************************************************************************/
  2417.  
  2418. #ifdef _DCC
  2419. extern char MUIC_Settings[];
  2420. #else
  2421. #define MUIC_Settings "Settings.mui"
  2422. #endif
  2423.  
  2424. /* Methods */
  2425.  
  2426.  
  2427. /* Attributes */
  2428.  
  2429.  
  2430.  
  2431.  
  2432. /****************************************************************************/
  2433. /** Frameadjust                                                            **/
  2434. /****************************************************************************/
  2435.  
  2436. #ifdef _DCC
  2437. extern char MUIC_Frameadjust[];
  2438. #else
  2439. #define MUIC_Frameadjust "Frameadjust.mui"
  2440. #endif
  2441.  
  2442. /* Methods */
  2443.  
  2444.  
  2445. /* Attributes */
  2446.  
  2447.  
  2448.  
  2449.  
  2450. /****************************************************************************/
  2451. /** Imageadjust                                                            **/
  2452. /****************************************************************************/
  2453.  
  2454. #ifdef _DCC
  2455. extern char MUIC_Imageadjust[];
  2456. #else
  2457. #define MUIC_Imageadjust "Imageadjust.mui"
  2458. #endif
  2459.  
  2460. /* Methods */
  2461.  
  2462.  
  2463. /* Attributes */
  2464.  
  2465.  
  2466. #define MUIV_Imageadjust_Type_All 0
  2467. #define MUIV_Imageadjust_Type_Image 1
  2468. #define MUIV_Imageadjust_Type_Background 2
  2469. #define MUIV_Imageadjust_Type_Pen 3
  2470.  
  2471.  
  2472. /****************************************************************************/
  2473. /** Virtgroup                                                              **/
  2474. /****************************************************************************/
  2475.  
  2476. #ifdef _DCC
  2477. extern char MUIC_Virtgroup[];
  2478. #else
  2479. #define MUIC_Virtgroup "Virtgroup.mui"
  2480. #endif
  2481.  
  2482. /* Methods */
  2483.  
  2484.  
  2485. /* Attributes */
  2486.  
  2487. #define MUIA_Virtgroup_Height               0x80423038 /* V6  ..g LONG              */
  2488. #define MUIA_Virtgroup_Input                0x80427f7e /* V11 i.. BOOL              */
  2489. #define MUIA_Virtgroup_Left                 0x80429371 /* V6  isg LONG              */
  2490. #define MUIA_Virtgroup_Top                  0x80425200 /* V6  isg LONG              */
  2491. #define MUIA_Virtgroup_Width                0x80427c49 /* V6  ..g LONG              */
  2492.  
  2493.  
  2494.  
  2495. /****************************************************************************/
  2496. /** Scrollgroup                                                            **/
  2497. /****************************************************************************/
  2498.  
  2499. #ifdef _DCC
  2500. extern char MUIC_Scrollgroup[];
  2501. #else
  2502. #define MUIC_Scrollgroup "Scrollgroup.mui"
  2503. #endif
  2504.  
  2505. /* Methods */
  2506.  
  2507.  
  2508. /* Attributes */
  2509.  
  2510. #define MUIA_Scrollgroup_Contents           0x80421261 /* V4  i.g Object *          */
  2511. #define MUIA_Scrollgroup_FreeHoriz          0x804292f3 /* V9  i.. BOOL              */
  2512. #define MUIA_Scrollgroup_FreeVert           0x804224f2 /* V9  i.. BOOL              */
  2513. #define MUIA_Scrollgroup_HorizBar           0x8042b63d /* V16 ..g Object *          */
  2514. #define MUIA_Scrollgroup_UseWinBorder       0x804284c1 /* V13 i.. BOOL              */
  2515. #define MUIA_Scrollgroup_VertBar            0x8042cdc0 /* V16 ..g Object *          */
  2516.  
  2517.  
  2518.  
  2519. /****************************************************************************/
  2520. /** Scrollbar                                                              **/
  2521. /****************************************************************************/
  2522.  
  2523. #ifdef _DCC
  2524. extern char MUIC_Scrollbar[];
  2525. #else
  2526. #define MUIC_Scrollbar "Scrollbar.mui"
  2527. #endif
  2528.  
  2529. /* Attributes */
  2530.  
  2531. #define MUIA_Scrollbar_Type                 0x8042fb6b /* V11 i.. LONG              */
  2532.  
  2533. #define MUIV_Scrollbar_Type_Default 0
  2534. #define MUIV_Scrollbar_Type_Bottom 1
  2535. #define MUIV_Scrollbar_Type_Top 2
  2536. #define MUIV_Scrollbar_Type_Sym 3
  2537.  
  2538.  
  2539. /****************************************************************************/
  2540. /** Listview                                                               **/
  2541. /****************************************************************************/
  2542.  
  2543. #ifdef _DCC
  2544. extern char MUIC_Listview[];
  2545. #else
  2546. #define MUIC_Listview "Listview.mui"
  2547. #endif
  2548.  
  2549. /* Attributes */
  2550.  
  2551. #define MUIA_Listview_ClickColumn           0x8042d1b3 /* V7  ..g LONG              */
  2552. #define MUIA_Listview_DefClickColumn        0x8042b296 /* V7  isg LONG              */
  2553. #define MUIA_Listview_DoubleClick           0x80424635 /* V4  i.g BOOL              */
  2554. #define MUIA_Listview_DragType              0x80425cd3 /* V11 isg LONG              */
  2555. #define MUIA_Listview_Input                 0x8042682d /* V4  i.. BOOL              */
  2556. #define MUIA_Listview_List                  0x8042bcce /* V4  i.g Object *          */
  2557. #define MUIA_Listview_MultiSelect           0x80427e08 /* V7  i.. LONG              */
  2558. #define MUIA_Listview_ScrollerPos           0x8042b1b4 /* V10 i.. BOOL              */
  2559. #define MUIA_Listview_SelectChange          0x8042178f /* V4  ..g BOOL              */
  2560.  
  2561. #define MUIV_Listview_DragType_None 0
  2562. #define MUIV_Listview_DragType_Immediate 1
  2563. #define MUIV_Listview_MultiSelect_None 0
  2564. #define MUIV_Listview_MultiSelect_Default 1
  2565. #define MUIV_Listview_MultiSelect_Shifted 2
  2566. #define MUIV_Listview_MultiSelect_Always 3
  2567. #define MUIV_Listview_ScrollerPos_Default 0
  2568. #define MUIV_Listview_ScrollerPos_Left 1
  2569. #define MUIV_Listview_ScrollerPos_Right 2
  2570. #define MUIV_Listview_ScrollerPos_None 3
  2571.  
  2572.  
  2573. /****************************************************************************/
  2574. /** Radio                                                                  **/
  2575. /****************************************************************************/
  2576.  
  2577. #ifdef _DCC
  2578. extern char MUIC_Radio[];
  2579. #else
  2580. #define MUIC_Radio "Radio.mui"
  2581. #endif
  2582.  
  2583. /* Attributes */
  2584.  
  2585. #define MUIA_Radio_Active                   0x80429b41 /* V4  isg LONG              */
  2586. #define MUIA_Radio_Entries                  0x8042b6a1 /* V4  i.. STRPTR *          */
  2587.  
  2588.  
  2589.  
  2590. /****************************************************************************/
  2591. /** Cycle                                                                  **/
  2592. /****************************************************************************/
  2593.  
  2594. #ifdef _DCC
  2595. extern char MUIC_Cycle[];
  2596. #else
  2597. #define MUIC_Cycle "Cycle.mui"
  2598. #endif
  2599.  
  2600. /* Attributes */
  2601.  
  2602. #define MUIA_Cycle_Active                   0x80421788 /* V4  isg LONG              */
  2603. #define MUIA_Cycle_Entries                  0x80420629 /* V4  i.. STRPTR *          */
  2604.  
  2605. #define MUIV_Cycle_Active_Next -1
  2606. #define MUIV_Cycle_Active_Prev -2
  2607.  
  2608.  
  2609. /****************************************************************************/
  2610. /** Coloradjust                                                            **/
  2611. /****************************************************************************/
  2612.  
  2613. #ifdef _DCC
  2614. extern char MUIC_Coloradjust[];
  2615. #else
  2616. #define MUIC_Coloradjust "Coloradjust.mui"
  2617. #endif
  2618.  
  2619. /* Methods */
  2620.  
  2621.  
  2622. /* Attributes */
  2623.  
  2624. #define MUIA_Coloradjust_Blue               0x8042b8a3 /* V4  isg ULONG             */
  2625. #define MUIA_Coloradjust_Green              0x804285ab /* V4  isg ULONG             */
  2626. #define MUIA_Coloradjust_ModeID             0x8042ec59 /* V4  isg ULONG             */
  2627. #define MUIA_Coloradjust_Red                0x80420eaa /* V4  isg ULONG             */
  2628. #define MUIA_Coloradjust_RGB                0x8042f899 /* V4  isg ULONG *           */
  2629.  
  2630.  
  2631.  
  2632. /****************************************************************************/
  2633. /** Palette                                                                **/
  2634. /****************************************************************************/
  2635.  
  2636. #ifdef _DCC
  2637. extern char MUIC_Palette[];
  2638. #else
  2639. #define MUIC_Palette "Palette.mui"
  2640. #endif
  2641.  
  2642. /* Attributes */
  2643.  
  2644. #define MUIA_Palette_Entries                0x8042a3d8 /* V6  i.g struct MUI_Palette_Entry * */
  2645. #define MUIA_Palette_Groupable              0x80423e67 /* V6  isg BOOL              */
  2646. #define MUIA_Palette_Names                  0x8042c3a2 /* V6  isg char **           */
  2647.  
  2648.  
  2649.  
  2650. /****************************************************************************/
  2651. /** Popstring                                                              **/
  2652. /****************************************************************************/
  2653.  
  2654. #ifdef _DCC
  2655. extern char MUIC_Popstring[];
  2656. #else
  2657. #define MUIC_Popstring "Popstring.mui"
  2658. #endif
  2659.  
  2660. /* Methods */
  2661.  
  2662. #define MUIM_Popstring_Close                0x8042dc52 /* V7  */
  2663. #define MUIM_Popstring_Open                 0x804258ba /* V7  */
  2664. struct  MUIP_Popstring_Close                { ULONG MethodID; LONG result; };
  2665. struct  MUIP_Popstring_Open                 { ULONG MethodID; };
  2666.  
  2667. /* Attributes */
  2668.  
  2669. #define MUIA_Popstring_Button               0x8042d0b9 /* V7  i.g Object *          */
  2670. #define MUIA_Popstring_CloseHook            0x804256bf /* V7  isg struct Hook *     */
  2671. #define MUIA_Popstring_OpenHook             0x80429d00 /* V7  isg struct Hook *     */
  2672. #define MUIA_Popstring_String               0x804239ea /* V7  i.g Object *          */
  2673. #define MUIA_Popstring_Toggle               0x80422b7a /* V7  isg BOOL              */
  2674.  
  2675.  
  2676.  
  2677. /****************************************************************************/
  2678. /** Popobject                                                              **/
  2679. /****************************************************************************/
  2680.  
  2681. #ifdef _DCC
  2682. extern char MUIC_Popobject[];
  2683. #else
  2684. #define MUIC_Popobject "Popobject.mui"
  2685. #endif
  2686.  
  2687. /* Attributes */
  2688.  
  2689. #define MUIA_Popobject_Follow               0x80424cb5 /* V7  isg BOOL              */
  2690. #define MUIA_Popobject_Light                0x8042a5a3 /* V7  isg BOOL              */
  2691. #define MUIA_Popobject_Object               0x804293e3 /* V7  i.g Object *          */
  2692. #define MUIA_Popobject_ObjStrHook           0x8042db44 /* V7  isg struct Hook *     */
  2693. #define MUIA_Popobject_StrObjHook           0x8042fbe1 /* V7  isg struct Hook *     */
  2694. #define MUIA_Popobject_Volatile             0x804252ec /* V7  isg BOOL              */
  2695. #define MUIA_Popobject_WindowHook           0x8042f194 /* V9  isg struct Hook *     */
  2696.  
  2697.  
  2698.  
  2699. /****************************************************************************/
  2700. /** Poplist                                                                **/
  2701. /****************************************************************************/
  2702.  
  2703. #ifdef _DCC
  2704. extern char MUIC_Poplist[];
  2705. #else
  2706. #define MUIC_Poplist "Poplist.mui"
  2707. #endif
  2708.  
  2709. /* Attributes */
  2710.  
  2711. #define MUIA_Poplist_Array                  0x8042084c /* V8  i.. char **           */
  2712.  
  2713.  
  2714.  
  2715. /****************************************************************************/
  2716. /** Popscreen                                                              **/
  2717. /****************************************************************************/
  2718.  
  2719. #ifdef _DCC
  2720. extern char MUIC_Popscreen[];
  2721. #else
  2722. #define MUIC_Popscreen "Popscreen.mui"
  2723. #endif
  2724.  
  2725. /* Attributes */
  2726.  
  2727.  
  2728.  
  2729.  
  2730. /****************************************************************************/
  2731. /** Popasl                                                                 **/
  2732. /****************************************************************************/
  2733.  
  2734. #ifdef _DCC
  2735. extern char MUIC_Popasl[];
  2736. #else
  2737. #define MUIC_Popasl "Popasl.mui"
  2738. #endif
  2739.  
  2740. /* Attributes */
  2741.  
  2742. #define MUIA_Popasl_Active                  0x80421b37 /* V7  ..g BOOL              */
  2743. #define MUIA_Popasl_StartHook               0x8042b703 /* V7  isg struct Hook *     */
  2744. #define MUIA_Popasl_StopHook                0x8042d8d2 /* V7  isg struct Hook *     */
  2745. #define MUIA_Popasl_Type                    0x8042df3d /* V7  i.g ULONG             */
  2746.  
  2747.  
  2748.  
  2749. /****************************************************************************/
  2750. /** Semaphore                                                              **/
  2751. /****************************************************************************/
  2752.  
  2753. #ifdef _DCC
  2754. extern char MUIC_Semaphore[];
  2755. #else
  2756. #define MUIC_Semaphore "Semaphore.mui"
  2757. #endif
  2758.  
  2759. /* Methods */
  2760.  
  2761. #define MUIM_Semaphore_Attempt              0x80426ce2 /* V11 */
  2762. #define MUIM_Semaphore_AttemptShared        0x80422551 /* V11 */
  2763. #define MUIM_Semaphore_Obtain               0x804276f0 /* V11 */
  2764. #define MUIM_Semaphore_ObtainShared         0x8042ea02 /* V11 */
  2765. #define MUIM_Semaphore_Release              0x80421f2d /* V11 */
  2766. struct  MUIP_Semaphore_Attempt              { ULONG MethodID; };
  2767. struct  MUIP_Semaphore_AttemptShared        { ULONG MethodID; };
  2768. struct  MUIP_Semaphore_Obtain               { ULONG MethodID; };
  2769. struct  MUIP_Semaphore_ObtainShared         { ULONG MethodID; };
  2770. struct  MUIP_Semaphore_Release              { ULONG MethodID; };
  2771.  
  2772.  
  2773. /****************************************************************************/
  2774. /** Applist                                                                **/
  2775. /****************************************************************************/
  2776.  
  2777. #ifdef _DCC
  2778. extern char MUIC_Applist[];
  2779. #else
  2780. #define MUIC_Applist "Applist.mui"
  2781. #endif
  2782.  
  2783. /* Methods */
  2784.  
  2785.  
  2786.  
  2787. /****************************************************************************/
  2788. /** Cclist                                                                 **/
  2789. /****************************************************************************/
  2790.  
  2791. #ifdef _DCC
  2792. extern char MUIC_Cclist[];
  2793. #else
  2794. #define MUIC_Cclist "Cclist.mui"
  2795. #endif
  2796.  
  2797. /* Methods */
  2798.  
  2799.  
  2800.  
  2801. /****************************************************************************/
  2802. /** Dataspace                                                              **/
  2803. /****************************************************************************/
  2804.  
  2805. #ifdef _DCC
  2806. extern char MUIC_Dataspace[];
  2807. #else
  2808. #define MUIC_Dataspace "Dataspace.mui"
  2809. #endif
  2810.  
  2811. /* Methods */
  2812.  
  2813. #define MUIM_Dataspace_Add                  0x80423366 /* V11 */
  2814. #define MUIM_Dataspace_Clear                0x8042b6c9 /* V11 */
  2815. #define MUIM_Dataspace_Find                 0x8042832c /* V11 */
  2816. #define MUIM_Dataspace_Merge                0x80423e2b /* V11 */
  2817. #define MUIM_Dataspace_ReadIFF              0x80420dfb /* V11 */
  2818. #define MUIM_Dataspace_Remove               0x8042dce1 /* V11 */
  2819. #define MUIM_Dataspace_WriteIFF             0x80425e8e /* V11 */
  2820. struct  MUIP_Dataspace_Add                  { ULONG MethodID; APTR data; LONG len; ULONG id; };
  2821. struct  MUIP_Dataspace_Clear                { ULONG MethodID; };
  2822. struct  MUIP_Dataspace_Find                 { ULONG MethodID; ULONG id; };
  2823. struct  MUIP_Dataspace_Merge                { ULONG MethodID; Object *dataspace; };
  2824. struct  MUIP_Dataspace_ReadIFF              { ULONG MethodID; struct IFFHandle *handle; };
  2825. struct  MUIP_Dataspace_Remove               { ULONG MethodID; ULONG id; };
  2826. struct  MUIP_Dataspace_WriteIFF             { ULONG MethodID; struct IFFHandle *handle; ULONG type; ULONG id; };
  2827.  
  2828. /* Attributes */
  2829.  
  2830. #define MUIA_Dataspace_Pool                 0x80424cf9 /* V11 i.. APTR              */
  2831.  
  2832.  
  2833.  
  2834. /****************************************************************************/
  2835. /** Configdata                                                             **/
  2836. /****************************************************************************/
  2837.  
  2838. #ifdef _DCC
  2839. extern char MUIC_Configdata[];
  2840. #else
  2841. #define MUIC_Configdata "Configdata.mui"
  2842. #endif
  2843.  
  2844. /* Methods */
  2845.  
  2846.  
  2847. /* Attributes */
  2848.  
  2849.  
  2850.  
  2851.  
  2852. /****************************************************************************/
  2853. /** Dtpic                                                                  **/
  2854. /****************************************************************************/
  2855.  
  2856. #ifdef _DCC
  2857. extern char MUIC_Dtpic[];
  2858. #else
  2859. #define MUIC_Dtpic "Dtpic.mui"
  2860. #endif
  2861.  
  2862. /* Attributes */
  2863.  
  2864.  
  2865.  
  2866.  
  2867. /*****************************************/
  2868. /* End of automatic header file creation */
  2869. /*****************************************/
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877. /*************************************************************************
  2878. ** Structures and Macros for creating custom classes.
  2879. *************************************************************************/
  2880.  
  2881.  
  2882. /*
  2883. ** GENERAL NOTES:
  2884. **
  2885. ** - Everything described in this header file is only valid within
  2886. **   MUI classes. You may never use any of these things out of
  2887. **   a class, e.g. in a traditional MUI application.
  2888. **
  2889. ** - Except when otherwise stated, all structures are strictly read only.
  2890. */
  2891.  
  2892.  
  2893. /* Global information for every object */
  2894.  
  2895. struct MUI_GlobalInfo
  2896. {
  2897.     ULONG priv0;
  2898.     Object *mgi_ApplicationObject;
  2899.  
  2900.     /* ... private data follows ... */
  2901. };
  2902.  
  2903.  
  2904. /* Instance data of notify class */
  2905.  
  2906. struct MUI_NotifyData
  2907. {
  2908.     struct MUI_GlobalInfo *mnd_GlobalInfo;
  2909.     ULONG                  mnd_UserData;
  2910.     ULONG                  mnd_ObjectID; 
  2911.     ULONG priv1;
  2912.     ULONG priv2;
  2913.     ULONG priv3;
  2914.     ULONG priv4;
  2915. };
  2916.  
  2917.  
  2918. /* MUI_MinMax structure holds information about minimum, maximum
  2919.    and default dimensions of an object. */
  2920.  
  2921. struct MUI_MinMax
  2922. {
  2923.     WORD MinWidth;
  2924.     WORD MinHeight;
  2925.     WORD MaxWidth;
  2926.     WORD MaxHeight;
  2927.     WORD DefWidth;
  2928.     WORD DefHeight;
  2929. };
  2930.  
  2931. #define MUI_MAXMAX 10000 /* use this if a dimension is not limited. */
  2932.  
  2933.  
  2934. /* Hook message for custom layout */
  2935.  
  2936. struct MUI_LayoutMsg
  2937. {
  2938.     ULONG                  lm_Type;     /* type of message (see defines below)                      */
  2939.     struct MinList        *lm_Children; /* list of this groups children, traverse with NextObject() */
  2940.     struct MUI_MinMax      lm_MinMax;   /* results for MUILM_MINMAX                                 */
  2941.     struct
  2942.     {
  2943.         LONG Width;
  2944.         LONG Height;
  2945.     ULONG priv5;
  2946.     ULONG priv6;
  2947.     } lm_Layout;   /* size (and result) for MUILM_LAYOUT                       */
  2948. };
  2949.  
  2950. #define MUILM_MINMAX    1  /* MUI wants you to calc your min & max sizes */
  2951. #define MUILM_LAYOUT    2  /* MUI wants you to layout your children      */
  2952.  
  2953. #define MUILM_UNKNOWN  -1  /* return this if your hook doesn't implement lm_Type */
  2954.  
  2955.  
  2956. /* (partial) instance data of area class */
  2957.  
  2958. struct MUI_AreaData
  2959. {
  2960.     struct MUI_RenderInfo *mad_RenderInfo;     /* RenderInfo for this object */
  2961.     ULONG priv7;
  2962.     struct TextFont       *mad_Font;           /* Font */
  2963.     struct MUI_MinMax      mad_MinMax;         /* min/max/default sizes */
  2964.     struct IBox            mad_Box;            /* position and dimension */
  2965.     BYTE                   mad_addleft;        /* frame & innerspacing left offset */
  2966.     BYTE                   mad_addtop;         /* frame & innerspacing top offset  */
  2967.     BYTE                   mad_subwidth;       /* frame & innerspacing add. width  */
  2968.     BYTE                   mad_subheight;      /* frame & innerspacing add. height */
  2969.     ULONG                  mad_Flags;          /* see definitions below */
  2970.  
  2971.     /* ... private data follows ... */
  2972. };
  2973.  
  2974. /* Definitions for mad_Flags, other flags are private */
  2975.  
  2976. #define MADF_DRAWOBJECT        (1<< 0) /* completely redraw yourself */
  2977. #define MADF_DRAWUPDATE        (1<< 1) /* only update yourself */
  2978.  
  2979.  
  2980.  
  2981. /* MUI's draw pens */
  2982.  
  2983. #define MPEN_SHINE      0
  2984. #define MPEN_HALFSHINE  1
  2985. #define MPEN_BACKGROUND 2
  2986. #define MPEN_HALFSHADOW 3
  2987. #define MPEN_SHADOW     4
  2988. #define MPEN_TEXT       5
  2989. #define MPEN_FILL       6
  2990. #define MPEN_MARK       7
  2991. #define MPEN_COUNT      8
  2992.  
  2993.  
  2994. /* Mask for pens from MUI_ObtainPen() */
  2995.  
  2996. #define MUIPEN_MASK 0x0000ffff
  2997. #define MUIPEN(pen) ((pen) & MUIPEN_MASK)
  2998.  
  2999.  
  3000. /* Information on display environment */
  3001.  
  3002. struct MUI_RenderInfo
  3003. {
  3004.     Object          *mri_WindowObject;  /* valid between MUIM_Setup/MUIM_Cleanup */
  3005.  
  3006.     struct Screen   *mri_Screen;        /* valid between MUIM_Setup/MUIM_Cleanup */
  3007.     struct DrawInfo *mri_DrawInfo;      /* valid between MUIM_Setup/MUIM_Cleanup */
  3008.     UWORD           *mri_Pens;          /* valid between MUIM_Setup/MUIM_Cleanup */
  3009.     struct Window   *mri_Window;        /* valid between MUIM_Show/MUIM_Hide */
  3010.     struct RastPort *mri_RastPort;      /* valid between MUIM_Show/MUIM_Hide */
  3011.  
  3012.     ULONG            mri_Flags;         /* valid between MUIM_Setup/MUIM_Cleanup */
  3013.  
  3014.     /* ... private data follows ... */
  3015. };
  3016.  
  3017. /*
  3018. ** If mri_Flags & MUIMRI_RECTFILL, RectFill() is quicker
  3019. ** than Move()/Draw() for horizontal or vertical lines.
  3020. ** on the current display.
  3021. */
  3022. #define MUIMRI_RECTFILL (1<<0)
  3023.  
  3024. /*
  3025. ** If mri_Flags & MUIMRI_TRUECOLOR, display environment is a
  3026. ** cybergraphics emulated hicolor or true color display.
  3027. */
  3028. #define MUIMRI_TRUECOLOR (1<<1)
  3029.  
  3030. /*
  3031. ** If mri_Flags & MUIMRI_THINFRAMES, MUI uses thin frames
  3032. ** (1:1) apsect ratio instead of standard 2:1 frames.
  3033. */
  3034. #define MUIMRI_THINFRAMES (1<<2)
  3035.  
  3036. /*
  3037. ** If mri_Flags & MUIMRI_REFRESHMODE, MUI is currently
  3038. ** refreshing a WFLG_SIMPLEREFRESH window and is between
  3039. ** a BeginRefresh()/EndRefresh() pair.
  3040. */
  3041. #define MUIMRI_REFRESHMODE (1<<3)
  3042.  
  3043.  
  3044. /* the following macros can be used to get pointers to an objects
  3045.    GlobalInfo and RenderInfo structures. */
  3046.  
  3047. struct __dummyXFC2__
  3048. {
  3049.     struct MUI_NotifyData mnd;
  3050.     struct MUI_AreaData   mad;
  3051. };
  3052.  
  3053. #define muiNotifyData(obj) (&(((struct __dummyXFC2__ *)(obj))->mnd))
  3054. #define muiAreaData(obj)   (&(((struct __dummyXFC2__ *)(obj))->mad))
  3055.  
  3056. #define muiGlobalInfo(obj) (((struct __dummyXFC2__ *)(obj))->mnd.mnd_GlobalInfo)
  3057. #define muiUserData(obj)   (((struct __dummyXFC2__ *)(obj))->mnd.mnd_UserData)
  3058. #define muiRenderInfo(obj) (((struct __dummyXFC2__ *)(obj))->mad.mad_RenderInfo)
  3059.  
  3060.  
  3061.  
  3062. /* User configurable keyboard events coming with MUIM_HandleInput */
  3063.  
  3064. enum
  3065. {
  3066.     MUIKEY_RELEASE = -2, /* not a real key, faked when MUIKEY_PRESS is released */
  3067.     MUIKEY_NONE    = -1,
  3068.     MUIKEY_PRESS,
  3069.     MUIKEY_TOGGLE,
  3070.     MUIKEY_UP,
  3071.     MUIKEY_DOWN,
  3072.     MUIKEY_PAGEUP,
  3073.     MUIKEY_PAGEDOWN,
  3074.     MUIKEY_TOP,
  3075.     MUIKEY_BOTTOM,
  3076.     MUIKEY_LEFT,
  3077.     MUIKEY_RIGHT,
  3078.     MUIKEY_WORDLEFT,
  3079.     MUIKEY_WORDRIGHT,
  3080.     MUIKEY_LINESTART,
  3081.     MUIKEY_LINEEND,
  3082.     MUIKEY_GADGET_NEXT,
  3083.     MUIKEY_GADGET_PREV,
  3084.     MUIKEY_GADGET_OFF,
  3085.     MUIKEY_WINDOW_CLOSE,
  3086.     MUIKEY_WINDOW_NEXT,
  3087.     MUIKEY_WINDOW_PREV,
  3088.     MUIKEY_HELP,
  3089.     MUIKEY_POPUP,
  3090.     MUIKEY_COUNT /* counter */
  3091. };
  3092.  
  3093. #define MUIKEYF_PRESS        (1<<MUIKEY_PRESS)
  3094. #define MUIKEYF_TOGGLE       (1<<MUIKEY_TOGGLE)
  3095. #define MUIKEYF_UP           (1<<MUIKEY_UP)
  3096. #define MUIKEYF_DOWN         (1<<MUIKEY_DOWN)
  3097. #define MUIKEYF_PAGEUP       (1<<MUIKEY_PAGEUP)
  3098. #define MUIKEYF_PAGEDOWN     (1<<MUIKEY_PAGEDOWN)
  3099. #define MUIKEYF_TOP          (1<<MUIKEY_TOP)
  3100. #define MUIKEYF_BOTTOM       (1<<MUIKEY_BOTTOM)
  3101. #define MUIKEYF_LEFT         (1<<MUIKEY_LEFT)
  3102. #define MUIKEYF_RIGHT        (1<<MUIKEY_RIGHT)
  3103. #define MUIKEYF_WORDLEFT     (1<<MUIKEY_WORDLEFT)
  3104. #define MUIKEYF_WORDRIGHT    (1<<MUIKEY_WORDRIGHT)
  3105. #define MUIKEYF_LINESTART    (1<<MUIKEY_LINESTART)
  3106. #define MUIKEYF_LINEEND      (1<<MUIKEY_LINEEND)
  3107. #define MUIKEYF_GADGET_NEXT  (1<<MUIKEY_GADGET_NEXT)
  3108. #define MUIKEYF_GADGET_PREV  (1<<MUIKEY_GADGET_PREV)
  3109. #define MUIKEYF_GADGET_OFF   (1<<MUIKEY_GADGET_OFF)
  3110. #define MUIKEYF_WINDOW_CLOSE (1<<MUIKEY_WINDOW_CLOSE)
  3111. #define MUIKEYF_WINDOW_NEXT  (1<<MUIKEY_WINDOW_NEXT)
  3112. #define MUIKEYF_WINDOW_PREV  (1<<MUIKEY_WINDOW_PREV)
  3113. #define MUIKEYF_HELP         (1<<MUIKEY_HELP)
  3114. #define MUIKEYF_POPUP        (1<<MUIKEY_POPUP)
  3115.  
  3116.  
  3117. /* Some useful shortcuts. define MUI_NOSHORTCUTS to get rid of them */
  3118. /* NOTE: These macros may only be used in custom classes and are    */
  3119. /* only valid if your class is inbetween the specified methods!     */
  3120.  
  3121. #ifndef MUI_NOSHORTCUTS
  3122.  
  3123. #define _app(obj)         (muiGlobalInfo(obj)->mgi_ApplicationObject) /* valid between MUIM_Setup/Cleanup */
  3124. #define _win(obj)         (muiRenderInfo(obj)->mri_WindowObject)      /* valid between MUIM_Setup/Cleanup */
  3125. #define _dri(obj)         (muiRenderInfo(obj)->mri_DrawInfo)          /* valid between MUIM_Setup/Cleanup */
  3126. #define _screen(obj)      (muiRenderInfo(obj)->mri_Screen)            /* valid between MUIM_Setup/Cleanup */
  3127. #define _pens(obj)        (muiRenderInfo(obj)->mri_Pens)              /* valid between MUIM_Setup/Cleanup */
  3128. #define _window(obj)      (muiRenderInfo(obj)->mri_Window)            /* valid between MUIM_Show/Hide */
  3129. #define _rp(obj)          (muiRenderInfo(obj)->mri_RastPort)          /* valid between MUIM_Show/Hide */
  3130. #define _left(obj)        (muiAreaData(obj)->mad_Box.Left)            /* valid during MUIM_Draw */
  3131. #define _top(obj)         (muiAreaData(obj)->mad_Box.Top)             /* valid during MUIM_Draw */
  3132. #define _width(obj)       (muiAreaData(obj)->mad_Box.Width)           /* valid during MUIM_Draw */
  3133. #define _height(obj)      (muiAreaData(obj)->mad_Box.Height)          /* valid during MUIM_Draw */
  3134. #define _right(obj)       (_left(obj)+_width(obj)-1)                  /* valid during MUIM_Draw */
  3135. #define _bottom(obj)      (_top(obj)+_height(obj)-1)                  /* valid during MUIM_Draw */
  3136. #define _addleft(obj)     (muiAreaData(obj)->mad_addleft  )           /* valid during MUIM_Draw */
  3137. #define _addtop(obj)      (muiAreaData(obj)->mad_addtop   )           /* valid during MUIM_Draw */
  3138. #define _subwidth(obj)    (muiAreaData(obj)->mad_subwidth )           /* valid during MUIM_Draw */
  3139. #define _subheight(obj)   (muiAreaData(obj)->mad_subheight)           /* valid during MUIM_Draw */
  3140. #define _mleft(obj)       (_left(obj)+_addleft(obj))                  /* valid during MUIM_Draw */
  3141. #define _mtop(obj)        (_top(obj)+_addtop(obj))                    /* valid during MUIM_Draw */
  3142. #define _mwidth(obj)      (_width(obj)-_subwidth(obj))                /* valid during MUIM_Draw */
  3143. #define _mheight(obj)     (_height(obj)-_subheight(obj))              /* valid during MUIM_Draw */
  3144. #define _mright(obj)      (_mleft(obj)+_mwidth(obj)-1)                /* valid during MUIM_Draw */
  3145. #define _mbottom(obj)     (_mtop(obj)+_mheight(obj)-1)                /* valid during MUIM_Draw */
  3146. #define _font(obj)        (muiAreaData(obj)->mad_Font)                /* valid between MUIM_Setup/Cleanup */
  3147. #define _minwidth(obj)    (muiAreaData(obj)->mad_MinMax.MinWidth)     /* valid between MUIM_Show/Hide */
  3148. #define _minheight(obj)   (muiAreaData(obj)->mad_MinMax.MinHeight)    /* valid between MUIM_Show/Hide */
  3149. #define _maxwidth(obj)    (muiAreaData(obj)->mad_MinMax.MaxWidth)     /* valid between MUIM_Show/Hide */
  3150. #define _maxheight(obj)   (muiAreaData(obj)->mad_MinMax.MaxHeight)    /* valid between MUIM_Show/Hide */
  3151. #define _defwidth(obj)    (muiAreaData(obj)->mad_MinMax.DefWidth)     /* valid between MUIM_Show/Hide */
  3152. #define _defheight(obj)   (muiAreaData(obj)->mad_MinMax.DefHeight)    /* valid between MUIM_Show/Hide */
  3153. #define _flags(obj)       (muiAreaData(obj)->mad_Flags)
  3154.  
  3155. #endif
  3156.  
  3157.  
  3158.  
  3159. /* MUI_CustomClass returned by MUI_CreateCustomClass() */
  3160.  
  3161. struct MUI_CustomClass
  3162. {
  3163.     APTR mcc_UserData;                  /* use for whatever you want */
  3164.  
  3165.     struct Library *mcc_UtilityBase;    /* MUI has opened these libraries */
  3166.     struct Library *mcc_DOSBase;        /* for you automatically. You can */
  3167.     struct Library *mcc_GfxBase;        /* use them or decide to open     */
  3168.     struct Library *mcc_IntuitionBase;  /* your libraries yourself.       */
  3169.  
  3170.     struct IClass *mcc_Super;           /* pointer to super class   */
  3171.     struct IClass *mcc_Class;           /* pointer to the new class */
  3172.  
  3173.     /* ... private data follows ... */
  3174. };
  3175.  
  3176.  
  3177.  
  3178.  
  3179. #endif /* MUI_H */
  3180.